我正在对系统进行审计,开发人员坚持认为这是 SQL 注入(inject)证明。他们通过去掉登录表单中的单引号来实现这一点——但后面的代码没有参数化;它仍然像这样使用文字 SQL:
username = username.Replace("'", "");
var sql = "select * from user where username = '" + username + "'";
这真的安全吗?是否有另一种插入单引号的方法,也许是使用转义字符?使用的数据库是 Oracle 10g。
最佳答案
也许您也可以使它们失败,因为不使用绑定(bind)变量会对性能产生非常负面的影响。
关于oracle - 如何在 Oracle 上进行 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3544484/