SQL注入的原理就不多说了,不过就是在get或post数据的时候提交非法的字符串来获得攻击者所需的信息或执行SQL命令,那只要对客户get或post的数据过滤一下非法字符串就可以了。基本思路就这么简单,代码如下:
//一些非法参数。当然,你自己还可以再加些非法字符串,或去掉一些你认为合法的。
var sql_injectdata="'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare";
SQL_inj = sql_injectdata.split("|");
//过滤get请求参数
if(Request.QueryString!="")
{
requerystring = new String(Request.QueryString);
for(var i=0;i<SQL_inj.length;i++)
{
if(requerystring.indexOf(SQL_inj[i])>0)
{
Response.Write("<Script Language=Javascript>alert('你的IP已被记录,欢迎下次光临,有事你可找我!');history.back(-1);window.open(\"http://www.zhldx.gov.cn/blog/ \")</Script>")
}
}
}
//过滤post数据
if(Request.Form!="")
{
reform = new String(Request.Form);
for(var j=0;j<SQL_inj.length;j++)
{
if(reform.indexOf(SQL_inj[i])>0)
{
Response.Write("<Script Language=Javascript>alert('你的IP已被记录,欢迎下次光临!');history.back(-1);window.open(\"http://www.zhldx.gov.cn/blog/ \")</Script>")
}
}
}
这些代码,放在你连接数据库代码之前就可以了