源:http://zhidao.baidu.com/question/100591207.html
评:
应该也可以做到,但正则不是一种高效的方法,用HtmlEncode的方法可以有效防止空格等被DBMS解释,但注意别把编码、解码搞反了;存储过程是DBMS执行的一段程序,把数据操纵交给存储过程执行,而不是提交SQL语句,可以有效防止SQL注入。 3、地址栏的Sql攻击,下面我引用了一段资料解释,他关于机制说的较清楚,关于解决,只是从客户端考虑的,实际上用存储过程等都可以防范。 资料: 首先,入侵者会对一个网站确定可不可以进行注入,假设一篇文章的地址为:http://www.naohou.cn/show.asp?id=325一般会以提交两个地址来测试,如: http://www.naohou.cn/show.asp?id=325 and 1=1 http://www.naohou.cn/show.asp?id=325 and 1=2 第一个地址后面加了 and 1=1,构成的SQL语句也就变为了:Select * from 表单名 where id=1 and 1=1这句话要成立就必须and前后语句都成立。那么前面的文章地址是可以访问的,后面的1=1也是客观成立的,那么第一个地址就可以正常显示;相反1=2是显然不成立的,关键就看这步了,如果提交and 1=2页面还是正常显示说明他并没有将and 1=2写入SQL语句,此站也就不存在注入漏洞;但如果提交and 1=2之后返回了错误页面则说明此站点将后面的语句带入了SQL语句并执行了,也就说明他可以进行SQL注入。(注:如果地址后面跟的是news.asp?id='1'就得变为news.asp?id=1' and '1'='1来补全引号了) 那么,知道可以注入后入侵者可以做什么呢? 这里就简单的说一下,比如提交这样的地址: http://www.naohou.cn/show.asp?id=325 and exists (select * from 表名 where 列名=数据) 根据返回的正确或错误页面来判断猜的表名和列名是否正确,具体实现时是先猜表名再猜列名。当猜出表名和列名之后还可以用ASC和MID函数来猜出各列的数据。MID函数的格式为:mid(变量名,第几个字符开始读取,读取几个字符),比如:mid(pwd,1,2)就可以从变量pwd中的第一位开始读取两位的字符。ASC函数的格式为:ASC("字符串"),如:asc("a")就可以读出字母a的ASCII码了。那么实际应用的时候就可以写为:asc(mid(pwd,1,1))这样读取的就是pwd列的第一个字符的ASCII码,提交: asc(mid(pwd,1,1))>97以返回的页面是否为正确页面来判断pwd列的第一个字符的ASCII码是否大于97(a的ASCII码),如果正确就再试是否小于122(z的ASCII码)……这样慢慢缩小字符的ASCII码的范围,猜到真实的ASCII码也只是时间的问题。一位一位的猜就可以得到数据库中的用户名和密码了。还有一种ASP验证缺陷——就是用户名和密码都输'or '1'='1,构造SQL语句Select * form 表单名 where username='' or '1'='1' and pwd='' or '1'='1'就可以达到绕过密码验证的目的。 说了那么多,其实防范的方法很简单,我们把特殊字符(如and、or、'、")都禁止提交就可以防止注入了。ASP传输数据分为get和post两种, get是通过将数据添加到URL后提交的方式,post则是利用邮寄信息数据字段将数据传送到服务器。
相关推荐
### 使用Python防止SQL注入攻击的实现示例 #### 文章背景与重要性 随着网络技术的发展,Web应用程序的安全性越来越受到人们的重视。开放式Web应用程序安全项目(OWASP)每几年都会发布一次关于Web应用程序最常见...
### SQL注入攻击实验报告知识点详解 #### 一、实验背景及目的 - **实验背景**:随着互联网技术的发展,Web应用程序越来越广泛地应用于各种场景之中。然而,由于开发者对安全性的忽视,使得许多Web应用程序存在安全...
IPS设备可以提供实时的防御,检测和阻止恶意的SQL语句,防止攻击者获取敏感信息或篡改Web数据。此外,IPS设备还可以提供详细的日志记录和告警信息,帮助管理员更好地监控和管理网络安全。 4.典型组网应用 SQL注入...
在提供的"防止SQL注入式攻击.exe"和"SQLInner"这两个文件中,可能包含了一个示例程序或工具,用于演示如何防止SQL注入。运行或研究这些文件可以加深对防御机制的理解。不过,从安全角度出发,不应随意运行未知来源的...
本文将深入探讨C#防止SQL注入式攻击的相关知识点,并结合"Ex18_04防止SQL注入式攻击"这一示例进行说明。 1. **理解SQL注入攻击** SQL注入攻击通常发生在应用程序没有正确验证用户输入时,攻击者可以通过输入特定的...
SQL注入是一种常见的网络安全威胁,它利用了不安全的SQL语句设计来操纵数据库。...通过深入研究SQLInner的源代码,开发者可以更好地理解和实施这些安全策略,提高应用程序的防护能力,防止SQL注入攻击。
SQL注入是Internet上最危险、最有名的安全漏洞之一,《SQL注入攻击与防御》是目前唯一一本专门致力于讲解SQL威胁的图书。《SQL注入攻击与防御》作者均是专门研究SQL注入的安全...通过设计来避免由SQL攻击所带来的危险
### Python中防止SQL注入的方法详解 #### 前言 SQL注入是一种常见的网络安全攻击手段,攻击者通过在输入数据中嵌入恶意SQL代码,利用应用程序的漏洞执行非法操作,如篡改、删除或检索敏感数据等。对于使用Python...
3. **转义特殊字符**:对SQL特殊字符进行转义,防止它们被解释为SQL命令的一部分。 4. **最小权限原则**:数据库连接应使用具有最低权限的角色,限制攻击者可能造成的损害。 5. **使用ORM(对象关系映射)**:ORM...
SQL 注入攻击防御指南 如何发现并防御自动 SQL 注入攻击 研究员开发新的技术来防御 SQL 注入攻击 如何斩断 SQL 注入式攻击的疯狂魔掌? Fuzzing tool 帮助 Oracle DBA 删除 SQL 注入错误 Web 安全...
对于想要深入了解和防止SQL注入的人来说,这些资源可能会非常有用。 总的来说,理解SQL注入的原理和防范措施是每个IT专业人员必备的知识,特别是那些负责开发、维护Web应用和数据库安全的人员。通过学习和实践,...
sql注入攻击流量情况
为了防止SQL注入攻击,需要了解攻击的机理和防护方法。 1. SQL注入攻击机理: SQL注入攻击的机理是攻击者通过向Web应用程序提交恶意的SQL代码,以达到非法访问或控制数据库的目的。攻击者可以通过猜表名、猜列名、...
Java 防止 SQL 注入是一个至关重要的安全问题,SQL 注入攻击是最常见的攻击方式之一,它不是利用操作系统或其他系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了 SQL 的空子。因此,在系统开发...
标题《Sql攻击与防御》指的是针对数据库安全领域的一种常见攻击方式——SQL注入(SQL Injection)及其防御方法的讨论。SQL注入攻击是一种代码注入技术,攻击者通过在Web表单输入或页面请求的查询字符串中插入恶意SQL...
为了防止SQL注入攻击的发生,开发人员应当采取一系列的安全措施: - **参数化查询**:使用预编译的参数化查询可以有效避免SQL注入。这种方式能够确保用户输入被当作数据而不是SQL命令的一部分。 - **输入验证**:对...
为了防止SQL注入,开发者应遵循以下最佳实践: - 使用参数化查询或预编译的SQL语句,避免将用户输入直接插入SQL。 - 对用户输入进行严格的验证和过滤,限制允许的字符和格式。 - 避免在错误消息中泄露过多信息,...
SQL参数化是ASP.NET开发中的一种常用技术,用于防止SQL注入攻击。SQL注入攻击是指攻击者通过在输入框中输入恶意的SQL语句,来获取或修改数据库中的敏感信息。这种攻击方式可以导致严重的数据泄露和破坏。 在ASP.NET...