求SQL 简单防注入代码
来源:百度知道 编辑:UC知道 时间:2024/06/24 13:01:45
我希望能够提供一个写好的java代码,拿过来就可以直接用,谢谢
jdbc里preparestatement类就已经防止了sql注入。
java里用preparestatement,sql语句不要用string相加的方式,用设置参数的方式,例如: prepStmt.setString(1, userId);
完整点的例子:
String selectStatement = "SELECT * FROM User WHERE userId = ? ";
PreparedStatement prepStmt = con.prepareStatement(selectStatement);
prepStmt.setString(1, userId);
ResultSet rs = prepStmt.executeQuery();
这样java就会会替你做特殊字符替换。千万不要这样相加:
PreparedStatement prepStmt = con.prepareStatement("SELECT * FROM user WHERE userId = '+strUserName+'");
最简单的防注入代码:
<%
function mysql(mylist)
mylist=trim(mylist)
mylist=replace(mylist,"%20","")
mylist=replace(mylist," ","")
mysql=mylist
end function
%>
然后每次调用的时候 直接在页面上加入:
id=mysql(request("id")) 等参数
我想 不管他们用什么代码,如果少了" "空格 Sql 语句就不可能正常运行。
个人的浅见。。麻烦是麻烦了一点 但对于小网站 也就几个页面要这样子 也无所谓了。。。。
方法一:写存储过程,