黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客安全 >> 文章正文
[推荐]ASP登陆验证页应做的安全问题
        ★★★★★
ASP登陆验证页应做的安全问题
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-8-25

利用非法字符溢出漏洞攻击网站简单的应对方法

SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。
比如:
      如果你的查询语句是
select * from admin where username='"&user&"' and password='"&pwd&"'"
      那么,如果我的用户名是:
1' or '1'='1
      那么,你的查询语句将会变成:

select * from admin where username='1 or '1'='1' and password='"&pwd&"'"
      这样你的查询语句就通过了,从而就可以进入你的管理界面。
      所以防范的时候需要对用户的输入进行检查。特别式一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
      需要过滤的特殊字符及字符串有:

net user
      xp_cmdshell
      /add
      exec master.dbo.xp_cmdshell
      net localgroup administrators
      select
      count
      Asc
      char
      mid
      '
      :
      "
      insert
      delete from
      drop table
      update
      truncate
      from
      %
      下面是我写的两种关于解决注入式攻击的防范代码,供大家学习参考!

     js版的防范SQL注入式攻击代码~:

以下是引用片段:
      <script language="javascript">
      <!--
      var url = location.search;
      var re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|:|net%20user|\'|%20or%20)(.*)$/gi;
      var e = re.test(url);
      if(e) {
      alert("地址中含有非法字符~");
      location.href="error.asp";
      }
      //-->
      <script>  

      asp版的防范SQL注入式攻击代码~:     

以下是引用片段:
     <%
      On Error Resume Next
      Dim strTemp

      If LCase(Request.ServerVariables("HTTPS")) = "off" Then
      strTemp = "http://"
      Else
      strTemp = "https://"
      End If

      strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
      If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")

      strTemp = strTemp & Request.ServerVariables("URL")

      If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)

      strTemp = LCase(strTemp)

      If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"'") or Instr(strTemp,"%20or%20") then
      Response.Write "<script language='javascript'>"
      Response.Write "alert('非法地址!!');"
      Response.Write "location.href='error.asp';"
      Response.Write "<script>"
      End If
      %>

      以下是较为简单的防范方法,这些都是大家比较熟悉的方法,我就是转帖过来。希望能给你一点帮助~  
      主要是针对数字型的变量传递:

以下是引用片段:

id = Request.QueryString("id")
      If Not(isNumeric(id)) Then
      Response.Write "非法地址~"
      Response.End
      End If

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886