预防SQL注入漏洞函数.
仅仅代表我的观点.不怕见笑.有问题请大家指教!我想如果你是牛人,那这个已经不是值得你看的内容,只是觉得对与很多刚入门的ASP程序员来说还是有点实际意义,所以不怕被大家笑话,写了贴在这里!
----<%
Function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
checkStr=replace(str," ","")
checkStr=replace(str,"'","'")
checkStr=replace(str,";","'")
checkStr=replace(str,"--","'")
checkStr=replace(str,"(","'")
checkStr=replace(str,"[","'")
checkStr=replace(str,"$","'")
end function
%>
相关函数
Left(string, length)
返回指定数目的从字符串的左边算起的字符
Asc(string)
返回与字符串的第一个字母对应的 ANSI 字符代码。
Mid(string, start[, length])
从字符串中返回指定数目的字符。
***********************************
我自己的做法是把字符串限定在8个字符内,呵!(千万条数据啊,没谁有这样大的记录吧?99,999,999呵!不够用,才怪了!除非你的数据从来不更新删出,那也没办法,问题是sql到了这样的时会是怎么样的速度)
---<%
if len(request.querystring("ddd"))> 8 then
response.write(黑我啊,不要了。少来)
response.end '最好有这句
'''初步是判断是否是数字=======IsNumeric 函数
if IsNumeric(request.querystring("ddd")) then
Execute("select * from [table]")
....
else
response.write(黑我啊,不要了。少来)
response.end '最好有这句
%>
当然了,加上上面的函数,在你的SQL过程里,效果就非常完美了!
呵!!!在变态点做个函数。
---<%
Function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
checkStr=replace(str," ","")
checkStr=replace(str,"'","'")
checkStr=replace(str,";","'")
checkStr=replace(str,"--","'")
checkStr=replace(str,"(","'")
checkStr=replace(str,"[","'")
checkStr=replace(str,"$","'")
checkStr=replace(str,"asc'," ")
checkStr=replace(str,"mid"," ")
checkStr=replace(str,"delete"," ")
checkStr=replace(str,"drop"," ")
'''呵!!我这里没屏蔽select,count,哈!想起来我就笑,太变态了,那其不是我什么都不用了不是更更安全啊!!!呵!!~^)^~
end function
%>
足够了,这个函数加载到sql选取记录集的地方。
如:rsql="select * from table where xxx="&checkstr(request.querystring("xxyy"))&""
或者来就判断字符串
说的有点林乱,但是就是这些了,对于普通的“黑客”已经足够他毫些时间了。但是对于老到的真正意义的黑客,这些都不是万能的东西,人家连服务器都黑,你能怎么样啊?嘿!!
看了些资料,结合自己的经验,写在这里。算是自己复习一下,看到的朋友也可以一起交流!QQ:22979784(加的请说明这篇文章的地址,怕扰啊!多多见谅了!)
另外对于sql注入漏洞,好象只是ASP里多些!其它的我还不是太清楚,所以还是需要提醒所有搞ASP的朋友,请多看看,微软的最新【windows 脚本技术】这个东西。
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMe/CN/scd56chs.exe
这里下,就可以了!
分享到:
相关推荐
本案例中,提供了几种预防SQL注入漏洞的方法。 首先,我们来看提供的`checkStr`函数,它用于过滤掉可能含有SQL特殊字符的输入。函数内部,`replace`函数被多次调用来替换掉空格 `'`(单引号)、`;`(分号)、`--`...
七、 SQL注入漏洞的预防方法 * 对用户输入数据的合法性进行判断,以防止SQL注入漏洞。 * 使用参数化查询来防止SQL注入漏洞。 * 及时更新和修复数据库管理系统的漏洞。 * 对服务器IIS日志的监控和分析,以便及时发现...
SQL注入漏洞是网络安全领域中的一个重要话题,它涉及到数据库管理和Web应用程序的安全性。在这个"SQL注入漏洞演示源代码"中,我们可以深入理解这种攻击方式的工作原理,并学习如何防止它。 SQL注入是通过输入恶意的...
SQL注入漏洞是一种常见的网络安全问题,它发生在Web应用程序中,当用户输入的数据未经充分验证或过滤直接拼接到SQL查询语句中执行时,攻击者可以通过构造恶意输入来控制或操纵数据库。这种漏洞允许攻击者获取敏感...
通过对比不同URL返回的结果,可以判断是否存在SQL注入漏洞。正常情况下,第一条和第二条URL应显示相同结果,而第三条则可能触发错误或异常行为,指示存在潜在的注入点。 #### 三、数据库类型识别与注入方法选择 在...
本文档介绍了一组 ASP.NET 中用于预防 SQL 注入攻击的过滤函数,并提供了一个简单的示例。 #### 关键知识点解析 ##### 1. **SqlFilter2 函数** 这是一个典型的 SQL 注入过滤函数,用于检测传入字符串是否包含可能...
在本话题中,我们将深入探讨如何利用SQL注入漏洞进行“拖库”,即从目标系统中完整地提取数据库内容。 首先,了解SQL注入的基本原理是至关重要的。当用户输入的数据直接与SQL命令拼接时,如果没有进行适当的转义或...
以下是对SQL注入漏洞的全面讲解,包括其原理、防范方法以及高级技巧。 1. SQL注入漏洞原理: SQL注入的基础在于,当用户输入的数据直接拼接到SQL查询语句中,而没有经过适当的过滤或转义,攻击者可以构造特定的...
在ASP源码中,如果对用户输入的数据没有进行充分的验证和转义,就可能导致SQL注入漏洞。例如,一个简单的查询用户ID的函数,如果没有进行适当的参数化查询或预编译语句,就可能被恶意用户利用,他们可以通过输入特定...
本主题将深入探讨如何使用C#编程语言编写一个SQL注入漏洞扫描器,旨在帮助开发者理解和预防这类威胁。 首先,我们需要理解SQL注入的基本概念。SQL注入是攻击者通过输入恶意的SQL代码,欺骗数据库服务器执行非预期的...
SQL注入攻击是网络安全领域中一个严重的问题,它发生在应用程序未能充分验证或清理用户输入的数据时。...在开发过程中,始终遵循安全编码的最佳实践,确保用户输入的安全性,是预防SQL注入的关键。
攻击步骤通常包括对网站或应用的输入点进行探测,然后通过输入特定构造的SQL片段来测试是否存在SQL注入漏洞。一旦找到漏洞,攻击者就可以执行各种SQL命令来达到攻击目的。 针对SQL注入攻击的预防方法可以从程序编写...
然而,如标题和描述所指出的,不当使用`is_numeric`可能会导致SQL注入漏洞,这是一种严重的安全问题。 一、`is_numeric`函数详解 `is_numeric`函数不仅会识别整数和浮点数,还会接受以数字开头的字符串,比如"123...
预防SQL注入的方法主要包括以下几点: 1. 使用参数化查询:这是最常用且有效的防御手段,如使用`SqlCommand`对象的`Parameters`集合,将用户输入作为参数传递,而不是直接拼接在SQL语句中。 2. 输入验证:对用户输入...