一个asp函数 解决SQL Injection漏洞

星空の月如

星空の月如

2016-01-29 18:49

一个asp函数 解决SQL Injection漏洞,一个asp函数, 解决SQL Injection漏洞
 

/**
作者:慈勤强
Email: cqq1978@Gmail.com
*/

函数很简单, 主要是针对字符串和数字两种类型的传入数据分别进行了处理,具体用法:

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

字符类型的
strUsername = CheckInput(Request(“username“),“s“)
数字类型的
ID = CheckInput(Request(“id“),“i“)

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

下面是函数

Function CheckInput(str,strType)
   '函数功能:过滤字符参数中的单引号,对于数字参数进行判断,如果不是数值类型,则赋值0
   '参数意义:  str        ---- 要过滤的参数
   '                 strType ---- 参数类型,分为字符型和数字型,字符型为"s",数字型为"i"
 Dim strTmp
 strTmp     = ""
 If strType ="s" Then
  strTmp = Replace(Trim(str),"'","''")
 ElseIf strType="i" Then
  If isNumeric(str)=False Then str="0"
  strTmp = str
 Else
  strTmp = str
 End If
 CheckInput = strTmp
End Function


SQL Injection的危害是很大的,比如对于SQL Server,可以创建、删除数据库,执行系统命令等等, 如drop table tbl_name, execute master.dbo.xp_cmdshell "command"所以很多人写的函数就是拼命的去过滤这些可能引起危害的关键词,比如drop ,分号,and,exe,mid等等,罗列了一大堆。

其实,尽可以不必那么繁琐,非要把简单的事情复杂化。
对于过滤,ASP中只要针对字符型和数字型分别处理就可以了,

字符型的,把单引号转换成两个单引号  strTmp = Replace(Trim(str),"'","''")
数字型的,就判断是否能够转换成数字型的 ,用 isNumeric函数

现在网上说的能够绕过单引号的攻击,其实是针对数字类型的,如果对于过滤了单引号的字符型,还有办法绕过,那就没得玩了........

 
展开更多 50%)
分享

猜你喜欢

一个asp函数 解决SQL Injection漏洞

Web开发
一个asp函数 解决SQL Injection漏洞

一个asp函数 解决SQL Injection漏洞

ASP
一个asp函数  解决SQL Injection漏洞

s8lol主宰符文怎么配

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

用PHP函数解决SQL injection

PHP
用PHP函数解决SQL injection

asp中的一个奇怪的函数

ASP
asp中的一个奇怪的函数

lol偷钱流符文搭配推荐

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

ASP整合的一个SQL语句类

ASP
ASP整合的一个SQL语句类

一个比较实用的asp函数集合类

ASP
一个比较实用的asp函数集合类

lolAD刺客新符文搭配推荐

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

Photoshop教程:打造照片逼真仿手绘效果详细过程

Photoshop教程:打造照片逼真仿手绘效果详细过程

一个高效的数据分页的存储过程

一个高效的数据分页的存储过程
下拉加载更多内容 ↓