首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

防范SQL注入式攻击

来源: 互联网    日期:2007-1-13 15:12:50
 

    SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。 [转自:711网络工作室 http://www.tc711.com]

    比如:
    如果你的查询语句是 [转自:711网络工作室 http://www.tc711.com]

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

     



更多的防范SQL注入式攻击请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2007-1-13 15:12:50   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报