关于利用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 验证字符串是否为有效的对象名。