防范SQL注入式攻击

O平常心Otime

O平常心Otime

2016-01-29 16:37

防范SQL注入式攻击,防范SQL注入式攻击
 

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注入式攻击代码~:

[CODE START]  
<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
[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)

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
%
[CODE END]

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)转自:动态网制作指南 www.knowsky.com

以下是较为简单的防范方法,这些都是大家比较熟悉的方法,我就是转帖过来。希望能给你一点帮助~

主要是针对数字型的变量传递:

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

id = Request.QueryString("id")

If Not(isNumeric(id)) Then

   Response.Write "非法地址~"

   Response.End

End If

以下是正常显示代码~

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

防范SQL注入式攻击

SQLServer
防范SQL注入式攻击

防范sql注入式攻击js版本

Web开发
防范sql注入式攻击js版本

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Dreamweaver中sql注入式攻击的防范

Web开发
Dreamweaver中sql注入式攻击的防范

JSP如何防范SQL注入攻击

Web开发
JSP如何防范SQL注入攻击

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JSP 防范SQL注入攻击分析

Web开发
JSP 防范SQL注入攻击分析

SQL注入程序带来的攻击及防范

Web开发
SQL注入程序带来的攻击及防范

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

WMA的制作流程与特作教程详解

WMA的制作流程与特作教程详解

《天天酷跑》经典模式手动4w米爆分视频

《天天酷跑》经典模式手动4w米爆分视频
下拉加载更多内容 ↓