<% OnErrorResumeNext dim sql_injdata,sql_inj,sql_get,sql_data SQL_injdata="'|ox" SQL_inj =split(SQL_Injdata,"|") '定义过滤字符,可以自己添加,以|分隔 '"'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" '对post方式过滤 If Request.Form<>""Then ForEach Sql_Post In Request.Form For SQL_Data=0ToUbound(SQL_inj) ifinstr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0Then Response.redirect "ss"'出错时转向页面 Response.end endif next next endif '对GET方式过滤 If Request.QueryString<>""Then ForEach SQL_Get In Request.QueryString For SQL_Data=0ToUbound(SQL_inj) ifinstr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0Then Response.redirect "ss"'出错时转向页面 Response.end endif next Next EndIf %>
'================================================ '函数名:IsValidStr '作 用:判断字符串中是否含有非法字符 '参 数:str ----原字符串 '返回值:False‚True -----布尔值 '================================================ PublicFunction IsValidStr(ByVal str) IsValidStr =False OnErrorResumeNext IfIsNull(str) ThenExitFunction IfTrim(str) =EmptyThenExitFunction Dim ForbidStr‚ i ForbidStr ="and|chr|:|=|%|&|$|#|@|+|-|*|/|/|<|>|;|‚|^|"&Chr(32) &"|"&Chr(34) &"|"&Chr(39) &"|"&Chr(9) ForbidStr =Split(ForbidStr‚ "|") For i =0ToUBound(ForbidStr) IfInStr(1‚str‚ ForbidStr(i)‚1) >0Then IsValidStr =False ExitFunction EndIf Next IsValidStr =True End Function
ASP.NET
public boolean checkParameter(String para) //过滤非法字符 ...{ int flag =0; flag += para.indexOf("'") +1; flag += para.indexOf(";") +1; flag += para.indexOf("1=1") +1; flag += para.indexOf("|") +1; flag += para.indexOf("<") +1; flag += para.indexOf(">") +1; if (flag !=0) ...{ System.out.println("提交了非法字符!!!"); returnfalse; } returntrue; }