重新编译所有无效的PL/SQL模块(对象)
当Oracle数据库创建完成后,系统将会自动运行utlrp.sql这个脚本文件(D:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN),但是,当通过定制安装类型的方式创建了数据库时,系统则不会运行utlrp.sql这个脚本,所以,建议在创建、更新或迁移一个数据库后,运行一下utlrp.sql这个脚本,以验证数据库安装是否成功,这样可以重新编译所有可能处于无效的PL/SQL模块(包、存储过程、类型、函数等等),这个步骤是可选的,但是推荐该步骤。注意:在运行该脚本期间,数据库中不允许有其它的数据库定义语言(DDL)运行并保证STANDARD和DBMS_STANDARD两个包处于有效状态。
步骤:
1)启动SQL*PLUS并以DBA角色的账户连接到数据库
SQL>sqlplus /nolog
SQL>conn lijing/lijing as sysdba
SQL>@D:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\utlrp.sql
相关文档:
比方说在查询id是50的数据时,如果用户传近来的参数是50 and 1=1,如果没有设置过滤的话,可以直接查出来,SQL 注入一般在ASP程序中遇到最多,
看看下面的
1.判断是否有注入
;and 1=1
;and 1=2
2.初步判断是否是mssql
;and user>0
3.判断数据库系统
;and (select count(*) from sysobjects)>0 mssql ......
用select语句,查询重复记录
假设,表名为 T1 子段为 A,B,C
select count(*) ,A,B,C from T1
group by A,B,C having count(*) > 1
测试数据:
A100 B100 C100&nbs ......
第一种采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:
String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = ......
Use equality first.
使用等连接
Use range operators only where equality does not apply.
只有在等连接不可用的情况下事由区间连接
Avoid use of negatives in the form of !=
or NOT.
避免使用 != 或者 not
Avoid LIKE pattern matching.
避免使用 LIKE匹配
Try to retrieve specific rows and in small n ......
昨天看到网上有一个关于SQL SERVER 课件,便随手下载了下来看看主要讲了些什么内容,于是看到了下面两个PPT页面
由于第一张PPT上的内容不太准确(日志文件中没有“日志页”的概念,只有VLF的概念,可能是我们对“数据页”的概念太深刻了,因此弄了以&ldq ......