24小时网维服务:18962710000            电信站工单系统域名白名单IP黑名单查询  
  ID:  密码:   
销售-1 网维-1 备案-1
QQ在线聊天,你可以加我为好友,QQ号码:97039189 QQ在线聊天,你可以加我为好友,QQ号码:97039188 QQ在线聊天,你可以加我为好友,QQ号码:97039185
销售-2 网维-2 主管-1
QQ在线聊天,你可以加我为好友,QQ号码:97039184 QQ在线聊天,你可以加我为好友,QQ号码:97039182 QQ在线聊天,你可以加我为好友,QQ号码:233111
我的知识库
IDC业务相关
服务器相关问题
IDC相关问题
空间相关问题
域名相关问题
邮局相关问题
付款相关问题
相关文本合同
企业相关资质
常用软件下载
域名备案专题



首页 >> 我的知识库 >> >> ASP网页防SQL注入的代码  
ASP网页防SQL注入的代码
[ 作者: wolf4ever | 文章来源: 中国站长站 | 点击数: 1233 | 更新时间: 2007-7-25 23:37:59 ]

近日笔者的小站遭受到SQL入侵,于是上网搜索了一些相关防SQL注入的方法。 [南通服务器网]

版本颇多,有人觉得这段好用,有人以为那段才行,因此综合整理了一下,包含以下几种: 南通服务器网

以下为引用的内容:
<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
'---定义部份 头------
Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Fy_Zx = "index.Asp" '出错时转向的页面
'---定义部份 尾------

On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then Spdns
Select Case Fy_Cl
Case "1"
Response.Write ""
Case "2"
Response.Write ""
Case "3"
Response.Write ""
End Select
Response.End
End If
End If
Next
%>
Spdns

以上代码为较多网友所用,从使用的感言来看,效果显著。 [南通服务器网]

以下为引用的内容:
Dim Query_Badword,Form_Badword,Err_Message,Err_Web,form_name

'------定义部份 头----------------------------------------------------------------------

Err_Message = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Err_Web = "Err.Asp" '出错时转向的页面
Query_Badword="'‖and‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖="
'在这部份定义get非法参数,使用"‖"号间隔
Form_Badword="'‖%‖&‖*‖#‖@‖=‖select‖and‖set‖delete" '在这部份定义post非法参数,使用"‖"号间隔

'------定义部份 尾-----------------------------------------------------------------------

[南通服务器网]


'
On Error Resume Next
'----- 对 get query 值 的过滤.
if request.QueryString<>"" then
Chk_badword=split(Query_Badword,"‖")
FOR EACH Query_form_name IN Request.QueryString
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_form_name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write ""
Case "2"
Response.Write ""
Case "3"
Response.Write ""

南通服务器网


End Select
Response.End
End If
NEXT
NEXT
End if

'-----对 post 表 单值的过滤.
if request.form<>"" then
Chk_badword=split(Form_Badword,"‖")
FOR EACH form_name IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(form_name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write ""
Case "2"
Response.Write ""
Case "3"
Response.Write ""

南通服务器网


End Select
Response.End
End If
NEXT
NEXT
end if
[南通服务器网]

以上是另一种版本。 南通服务器网

以下为引用的内容:
<%
Dim GetFlag Rem(提交方式)
Dim ErrorSql Rem(非法字符)
Dim RequestKey Rem(提交数据)
Dim ForI Rem(循环标记)
ErrorSql = "'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare" Rem(每个敏感字符或者词语请使用半角 "~" 格开)
ErrorSql = split(ErrorSql,"~")
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
GetFlag=True
Else
GetFlag=False
End If
If GetFlag Then
For Each RequestKey In Request.QueryString Spdns
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0 Then
response.write ""
Response.End
End If
Next
Next
Else
For Each RequestKey In Request.Form
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0 Then
response.write ""
Response.End
End If
Next
Next
End If
%>
南通服务器网

将上述代码放入conn文件中即可,功能较全面…… [南通服务器网]

若您有相关经历或好的防注方法,欢迎留言交流^_^

Spdns

另外,亦可参考网络上较为成熟的ASP的cms里所用的防注入程序,不管如何,只想向那些代码入侵的无聊者说:善待他人就是成全自己。(wolf4ever)

[南通服务器网]

Tags:ASP 网页 防SQL注入 代码
责任编辑:狼



评论
收藏
推荐
打印
关闭
字体:+ -
纠错


Copyright © 1999-2012 诚信 合法 规范的欧网 www.spdns.com 始建于1996
南通欧网网络科技有限公司 公司地址:江苏省南通市崇川区桃园路8号中南世纪14幢1009室 企业法人营业执照 电信增值业务经营许可证(ICP) 电信增值业务经营许可证(ISP)
中华人民共和国电信增值业务经营许可证 (ICP):苏B2-20090207 (ISP):苏B2-20090195
中华人民共和国企业注册号:320600000226624
CNIDC认证商家