求SQL 简单防注入代码

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:01:45
我现在在用struts做一个网页,想对用户的一些查询或者点击进行限制,以达到一定的防注入,请提供一些简易的防注入代码,如防"'"等,谢谢
我希望能够提供一个写好的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 语句就不可能正常运行。

个人的浅见。。麻烦是麻烦了一点 但对于小网站 也就几个页面要这样子 也无所谓了。。。。

方法一:写存储过程,