防范sql注入式攻击js版本

2016-02-19 19:08 29 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享防范sql注入式攻击js版本,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

  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="****"
  !--
  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|"|../../image/bbs3000/whatchutalkingabout_smile.gifnet%20user|''|%20or%20)(.*)$/gi;
  var e = re.test(url);
  if(e) {
  alert("地址中含有非法字符~");
  location.href="error.asp";
  }
  //--
  script
  [CODE END]

  
  asp版的防范SQL注入式攻击代码~:
  [CODE START]
  %
  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")

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

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

  strTemp = LCase(strTemp)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  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=''****''"
  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

来源:http://www.tulaoshi.com/n/20160219/1620094.html

延伸阅读
标签: SQLServer
 MSSQL注入通杀,只要有注入点就有系统权限  不知道大家看过这篇文章没有,可以在db_owner角色下添加SYSADMIN帐号,这招真狠啊,存在MSSQL注射漏洞的服务器又要遭殃了。方法主要是利用db_owner可以修改sp_addlogin和sp_addsrvrolemember这两个存储过程,饶过了验证部分。具体方法如下:先输入drop procedure sp_addlogi...
标签: Web开发
近段时间由于修改一个ASP程序(有SQL注入漏洞),在网上找了很多相关的一些防范办法,都不近人意,所以我将现在网上的一些方法综合改良了一下,写出这个ASP函数,供大家参考。 以下是引用片段: Function SafeRequest(ParaName)  Dim ParaValue  ParaValue=Request(ParaName) if IsNumeric(ParaValue) = T...
标签: PHP
  PHP与SQL注入攻击[二] Magic Quotes 上文提到,SQL注入主要是提交不安全的数据给数据库来达到攻击目的。为了防止SQL注 入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全 上的初步处理,也即Magic Quotes。(php.ini magic_quotes_gpc)。如果magic_quotes_gpc 选项启用,那么输入的字符串中的单引号,...
标签: ASP
  SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的,哎,谁让这个入门容易呢,好了,不说废话了,现在我开始说如果编写通用的SQL防注入程序一般的http请求不外乎get 和 post,所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http 请求信息过滤就...
标签: PHP
  Haohappy http://blog.csdn.net/Haohappy2004 SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么非常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈SQL注入攻击是如何实现的,又如何防范。 ...

经验教程

707

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部