我正在对一个系统进行审计,开发人员坚持认为这是一个sql注入证明.这是通过在登录表单中删除单引号来实现的 – 但后面的代码没有参数化;它仍然使用文字sql,如下所示:
username = username.Replace("'",""); var sql = "select * from user where username = '" + username + "'";
这真的很安全吗?是否有另一种插入单引号的方法,可能是使用转义字符?正在使用的DB是Oracle 10g.
解决方法
看看这里的测试指南:
http://www.owasp.org/index.php/Main_Page这应该会给你更多狡猾的测试场景,或许足以促使重新评估sql编码策略:-)