asp 防止SQL注入

 

防止SQL注入 古老的话题,不需要太多的解释了,这里给出一个解决办法,

'**********************************
'防止SQL注入程序
'联系:QQ:49934843 EMAIL:[email protected]
'***********************************

dim sql_Chk_Post,sql_Chk_Get,sql_Chk_In,sql_Chk_Inf,sql_Chk_Xh,sql_Chk_db,sql_Chk_dbstr,sql_Chk_Err
sql_Chk_Err = false
sql_Chk_In = "'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
sql_Chk_Inf = split(sql_Chk_In,"|")
'--------POST部份------------------
If Request.Form<>"" Then
 For Each sql_Chk_Post In Request.Form
  For sql_Chk_Xh=0 To Ubound(sql_Chk_Inf)
   If Instr(LCase(Request.Form(sql_Chk_Post)),sql_Chk_Inf(sql_Chk_Xh))<>0 Then
    sql_Chk_Err = true
    alertError(sql_Chk_Post)
   End If
  Next
 Next
End If
'--------GET部份-------------------
If Request.QueryString<>"" Then
 For Each sql_Chk_Get In Request.QueryString
  For sql_Chk_Xh=0 To Ubound(sql_Chk_Inf)
   If Instr(LCase(Request.QueryString(sql_Chk_Get)),sql_Chk_Inf(sql_Chk_Xh))<>0 Then
    sql_Chk_Err = true
    alertError(sql_Chk_Get)
   End If
  Next
 Next
End If
'-------------------------------------

function alertError(byval sql_Chk_Date)
 Response.Write ""
 Response.Write "非法操作!系统做了如下记录↓
"
 Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"
"
 Response.Write "操作时间:"&Now&"
"
 Response.Write "操作页面:"&Request.ServerVariables("URL")&"
"
 Response.Write "提交参数:"&sql_Chk_Date&"
"
 Response.Write "提交数据:"&Request(sql_Chk_Date)
 Response.End
End function

 

将以上程序放在一个文件中,并include在自己的程序前,基本上能保证检测到。

你可能感兴趣的:(asp 防止SQL注入)