在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享防范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") 
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
看过《防范sql注入式攻击js版本》的人还看了以下文章 更多>>