• 新时代好家风 2018寻找天津最美家庭 2019-08-30
  • 一汽奔腾SENIA R9下线 5月底将正式上市 2019-08-30
  • 书店悬崖海底 世界上最离奇的酒吧大观PolignanoProvins 2019-08-06
  • 国产葡萄酒业处于升级阶段 2019-08-06
  • 胡杏儿晒儿子软萌照 睡眼惺忪眼神迷人可爱十足 2019-08-03
  • 火箭杜兰特一口价恐被勇士打劫?纵有3绝技也给不起6千万 2019-08-03
  • 世界小姐张梓琳练功晒逆天长腿 被调侃心疼屋顶 2019-08-02
  • 或许正相反,朝鲜就是例证 2019-08-02
  • 世界杯老司机速成手册:球场之上,谁的眼泪在飞 2019-07-23
  • 火狐推出速度更快的全新Firefox 57浏览器 2019-07-15
  • 北京服装学院服饰艺术与工程学院毕业生设计作品发布 2019-07-09
  • 霍金骨灰落葬伦敦西敏寺大教堂 与牛顿达尔文为邻 2019-06-24
  • 土拍活跃 西咸新区四天共18宗土地成交 2019-06-24
  • 险资持仓未变银行股一季度市值缩水326亿元 2019-06-23
  • 朝鲜播长篇“金特会”纪录片,称金正恩为“杰出的世界领袖” 2019-06-20
  • Question to say "I can!"

    玩电子游戏的弊大于利:ASP网页防SQL注入的代码

    2013-10-29

    近日笔者的小站遭受到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
    Select Case Fy_Cl
    Case "1"
    Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:and,select,update,insert,delete,chr 等非法字符!\n\n我已经设置了不能SQL注入,请不要对我进行非法手段!');window.close();</Script>"
    Case "2"
    Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>"
    Case "3"
    Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:,and,select,update,insert,delete,chr 等非法字符!\n\n设计了门,非法侵入请离开,谢谢!');location.href='"&Fy_Zx&"';</Script>"
    End Select
    Response.End
    End If
    End If
    Next
    %>

    以上代码为较多网友所用,从使用的感言来看,效果显著。

    以下为引用的内容:
    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 "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();</Script>"
    Case "2"
    Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
    Case "3"
    Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';</Script>"
    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 "<Script Language=JavaScript>alert('出错了!表单 "&form_name&" 的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');window.close();</Script>"
    Case "2"
    Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
    Case "3"
    Response.Write "<Script Language=JavaScript>alert('出错了!参数 "&form_name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');location.href='"&Err_Web&"';</Script>"
    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
    For?ForI=0?To?Ubound(ErrorSql)
    If?Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0?Then
    response.write?"<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
    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?"<script>alert(""警告:\n请不要做任何尝试"");location.href=""index.asp"";</script>"
    Response.End
    End?If
    Next
    Next
    End?If
    %>

    将上述代码放入conn文件中即可,功能较全面……

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

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

    作者:admin | Categories:系统问题 | Tags: 、、

    一条评论

    1. admin说道:

      asp sql 通用防注入3.2 最新版:
      //www.jb51.net/codes/9905.html
      这个也应该很好用。

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    *

  • 新时代好家风 2018寻找天津最美家庭 2019-08-30
  • 一汽奔腾SENIA R9下线 5月底将正式上市 2019-08-30
  • 书店悬崖海底 世界上最离奇的酒吧大观PolignanoProvins 2019-08-06
  • 国产葡萄酒业处于升级阶段 2019-08-06
  • 胡杏儿晒儿子软萌照 睡眼惺忪眼神迷人可爱十足 2019-08-03
  • 火箭杜兰特一口价恐被勇士打劫?纵有3绝技也给不起6千万 2019-08-03
  • 世界小姐张梓琳练功晒逆天长腿 被调侃心疼屋顶 2019-08-02
  • 或许正相反,朝鲜就是例证 2019-08-02
  • 世界杯老司机速成手册:球场之上,谁的眼泪在飞 2019-07-23
  • 火狐推出速度更快的全新Firefox 57浏览器 2019-07-15
  • 北京服装学院服饰艺术与工程学院毕业生设计作品发布 2019-07-09
  • 霍金骨灰落葬伦敦西敏寺大教堂 与牛顿达尔文为邻 2019-06-24
  • 土拍活跃 西咸新区四天共18宗土地成交 2019-06-24
  • 险资持仓未变银行股一季度市值缩水326亿元 2019-06-23
  • 朝鲜播长篇“金特会”纪录片,称金正恩为“杰出的世界领袖” 2019-06-20
  • 球探在IOS叫微球 天津时时彩坐标走势图 赌场21點玩法 快乐赛结果 pc蛋蛋走势图怎么看 安徽时时是真的吗 四人牛牛 北京赛pk10的收听 广东彩票下载安装 黑龙江时时0 吉利三分彩技巧图解 七星彩走势图星天 海南四加一开奖号码 秒速时时彩开奖走势图 注册就送彩金的游戏网站 北京赛pk10技巧