易截截图软件、单文件、免安装、纯绿色、仅160KB

解决SQL Injection漏洞的一个函数

解决SQL Injection漏洞的一个函数
http://blog.csdn.net/cncco/archive/2006/04/07/654254.aspx
函数
<%
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
%>
这个函数很简单, 主要是针对字符串和数字两种类型的传入数据分别进行了处理,具体用法:
字符类型的
strUsername = CheckInput(Request(“username“),“s“)
数字类型的
ID = CheckInput(Request(“id“),“i“)
SQL Injection的危害是很大的,比如对于SQL Server,可以创建、删除数据库,执行系统命令等等, 如drop table tbl_name, execute master.dbo.xp_cmdshell "command"所以很多人写的函数就是拼命的去过滤这些可能引起危害的关键词,比如drop ,分号,and,exe,mid等等,罗列了一大堆。
其实,尽可以不必那么繁琐,非要把简单的事情复杂化。
对于过滤,ASP中只要针对字符型和数字型分别处理就可以了,
字符型的,把单引号转换成两个单引号  strTmp = Replace(Trim(str),"'","'")
数字型的,就判断是否能够转换成数字型的 ,用 isNumeric函数
现在网上说的能够绕过单引号的攻击,其实是针对数字类型的,如果对于过滤了单引号的字符型,还有办法绕过,那就没得玩了........
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cncco/archive/2006/04/07/654254.aspx


相关文档:

SQL SERVER常用日期函数


1.一个月第一天的
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一
Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天
Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天
Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜
Select DATEADD(dd, DAT ......

SQL Server查询一张表的所有字段

SQL Server查询一张表的所有字段:
http://hi.baidu.com/samxx8/blog/item/7048f8de1725835894ee37b4.html
SELECT c.name,o.name from syscolumns AS c
INNER JOIN sysobjects AS o
ON c.id = o.id where o.name='SPF_Users' ......

用ADO管理SQL SERVER

用ADO管理SQL SERVER
http://blog.csdn.net/cncco/archive/2009/11/09/4789123.aspx
在软件开发中,常常需要为程序建立Sql Server数据库的运行环境。完成如在SQL Server数据库中建立设备,建立数据库,建立表格,分配权限等功能,如何方便的建立应用程序所需Sql Server环境的数据库环境,而不用启动SQL Enterprise Manage ......

保护SQL Server数据库的十大绝招

保护SQL Server数据库的十大绝招
http://blog.csdn.net/cncco/archive/2007/09/15/1785880.aspx
1. 安装最新的服务包
为了提高服务器安全性,最有效的一个方法就是升级到SQL Server 2000 Service Pack 3a (SP3a)。另外,您还应该安装所有已发布的安全更新。
2. 使用Microsoft基线安全性分析器(MBSA)来评估服务器的安 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号