关于利用oracle自带功能防止SQL注入的方法
2016-08-29 13:15
796 查看
关于利用oracle自带功能防止SQL注入的方法
在B/S开发中我们经常会考虑一个安全问题那就是防止SQL注入,现在介绍ORACLE自带的程序包进行防止SQL注入;在oracle的DBMS_ASSERT
包中包含了相关的函数,将传入的参数使用其进行检查,如果不符合相关规则,那末SQL语句执行会报错,从而达到防止SQL注入的风险。
ENQUOTE_LITERAL
输入字符串,并且在前后加上单引号;从而避免字符串中有多个单引号的问题。
select dbms_assert.ENQUOTE_LITERAL('test '||chr(58)||test) from dual;
ENQUOTE_NAME 前后加上单引号并且将字符串变为大写;
QUALIFIED_SQL_NAME 验证输入的字符串是否为一个有效模式的对象名,可以用来验证函数 表 过程等的有效性。
SIMPLE_SQL_NAME 与QUALIFIED_SQL_NAME功能相同。
SQL_OBJECT_NAME 验证字符串是否为有效的对象名。
在B/S开发中我们经常会考虑一个安全问题那就是防止SQL注入,现在介绍ORACLE自带的程序包进行防止SQL注入;在oracle的DBMS_ASSERT
包中包含了相关的函数,将传入的参数使用其进行检查,如果不符合相关规则,那末SQL语句执行会报错,从而达到防止SQL注入的风险。
ENQUOTE_LITERAL
输入字符串,并且在前后加上单引号;从而避免字符串中有多个单引号的问题。
select dbms_assert.ENQUOTE_LITERAL('test '||chr(58)||test) from dual;
ENQUOTE_NAME 前后加上单引号并且将字符串变为大写;
QUALIFIED_SQL_NAME 验证输入的字符串是否为一个有效模式的对象名,可以用来验证函数 表 过程等的有效性。
SIMPLE_SQL_NAME 与QUALIFIED_SQL_NAME功能相同。
SQL_OBJECT_NAME 验证字符串是否为有效的对象名。
相关文章推荐
- [转]ubuntu linux下安装oracle jdk
- oracle 存储过程之游标(loop)使用
- Grid Control中进行Dataguard切换 因RAC节点的oracle用户密码不一致导致无法切换
- oracle简单的用户创建和授权
- Oracle 表和表数据恢复
- oracle SEQUENCE 修改、删除、创建
- Oracle中汉字所占的字节
- Oracle数据类型对应Java类型
- Linux Oracle 11g, lsnrctl start 监听服务启动失败解决办法
- Oracle常见的等待事件(二)
- oracle中如何修改process(进程)
- 窥豹一斑:系统设计对系统运行性能的影响
- Oracle NLS_CHARACTERSET NLS_NCHAR_CHARACTERSET 的区别
- Oracle 用户加锁与解锁
- Oracle 数据库 字符集修改
- 常见的等待事件(一)
- ORACLE客户端乱码--修改Oracle客户端字符集
- linux开启oracle服务、监听命令
- 【oracle学习】4.处理数据
- Oracle tnsnames.ora listener.ora 配置