如何防止sql注入攻击的方法解析

2018-01-06 - 如何防止

然SQL注入式攻击的危害这么大,那么该如何来防治呢?下面这些建议或许对数据库管理员防治SQL注入式攻击有一定的帮助。

如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许执行呢?由于Drop语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权限。

如何防止sql注入

那么即使在他们使用SQL语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开来。如此可以最大限度的减少注入式攻击对数据库带来的危害。

如何防止sql注入

如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语句。而是通过参数来传递这个变量的话,那么就可以有效的防治SQL注入式攻击。也就是说,用户的输入绝对不能够直接被嵌入到SQL语句中。与此相反,用户的输入的内容必须进行过滤,或者使用参数化的语句来传递用户输入的变量。

如何防止sql注入

参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。采用这种措施,可以杜绝大部分的SQL注入式攻击。不过可惜的是,现在支持参数化语句的数据库引擎并不多。不过数据库工程师在开发产品的时候要尽量采用参数化语句。

如何防止sql注入

总体来说,防治SQL注入式攻击可以采用两种方法,一是加强对用户输入内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。在SQLServer数据库中,有比较多的用户输入内容验证工具,可以帮助管理员来对付SQL注入式攻击。

如何防止sql注入

测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。测试用户输入内容的大小和数据类型,强制执行适当的限制与转换。这即有助于防止有意造成的缓冲区溢出,对于防治注入式攻击有比较明显的效果。

如可以使用存储过程来验证用户的输入。利用存储过程可以实现对用户输入变量的过滤,如拒绝一些特殊的符号。如以上那个恶意代码中,只要存储过程把那个分号过滤掉,那么这个恶意代码也就没有用武之地了。在执行SQL语句之前,可以通过数据库的存储过程,来拒绝接纳一些特殊的符号。

在不影响数据库应用的前提下,应该让数据库拒绝包含以下字符的输入。如分号分隔符,它是SQL注入式攻击的主要帮凶。如注释分隔符。注释只有在数据设计的时候用的到。一般用户的查询语句中没有必要注释的内容,故可以直接把他拒绝掉,通常情况下这么做不会发生意外损失。把以上这些特殊符号拒绝掉,那么即使在SQL语句中嵌入了恶意代码,他们也将毫无作为。

故始终通过测试类型、长度、格式和范围来验证用户输入,过滤用户输入的内容。这是防止SQL注入式攻击的常见并且行之有效的措施。

为了减少注入式攻击对于SQL Server数据库的不良影响,在SQLServer数据库专门设计了相对安全的SQL参数。在数据库设计过程中,工程师要尽量采用这些参数来杜绝恶意的SQL注入式攻击。

如在SQL Server数据库中提供了Parameters集合。这个集合提供了类型检查和长度验证的功能。如果管理员采用了Parameters这个集合的话,则用户输入的内容将被视为字符值而不是可执行代码。

即使用户输入的内容中含有可执行代码,则数据库也会过滤掉。因为此时数据库只把它当作普通的字符来处理。使用Parameters集合的另外一个优点是可以强制执行类型和长度检查,范围以外的值将触发异常。如果用户输入的值不符合指定的类型与长度约束,就会发生异常,并报告给管理员。

如上面这个案例中,如果员工编号定义的数据类型为字符串型,长度为10个字符。而用户输入的内容虽然也是字符类型的数据,但是其长度达到了20个字符。则此时就会引发异常,因为用户输入的内容长度超过了数据库字段长度的限制。

在多层应用环境中,用户输入的所有数据都应该在验证之后才能被允许进入到可信区域。未通过验证过程的数据应被数据库拒绝,并向上一层返回一个错误信息。实现多层验证。对无目的的恶意用户采取的预防措施,对坚定的攻击者可能无效。

更好的做法是在用户界面和所有跨信任边界的后续点上验证输入。如在客户端应用程序中验证数据可以防止简单的脚本注入。但是,如果下一层认为其输入已通过验证,则任何可以绕过客户端的恶意用户就可以不受限制地访问系统。故对于多层应用环境,在防止注入式攻击的时候,需要各层一起努力,在客户端与数据库端都要采用相应的措施来防治SQL语句的注入式攻击。

使用专业的漏洞扫描工具,可以帮助管理员来寻找可能被SQL注入式攻击的点。不过漏洞扫描工具只能发现攻击点,而不能够主动起到防御SQL注入攻击的作用。当然这个工具也经常被攻击者拿来使用。如攻击者可以利用这个工具自动搜索攻击目标并实施攻击。

为此在必要的情况下,企业应当投资于一些专业的漏洞扫描工具。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找数据库中的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。

所以凭借专业的工具,可以帮助管理员发现SQL注入式漏洞,并提醒管理员采取积极的措施来预防SQL注入式攻击。如果攻击者能够发现的SQL注入式漏洞数据库管理员都发现了并采取了积极的措施堵住漏洞,那么攻击者也就无从下手了。

设置两个帐号,一个是普通管理员帐号,一个是防注入的帐号。将防注入的账号设置的很象管理员,如 admin,以制造假象吸引软件的检测,而密码是大于千字以上的中文字符,迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机。

SQL注入攻击防范系统:

防范系统对访问网页提交的关键字(包括Get、Post方式以及cookie)进行过滤,一旦发现违法的关键字的时候(如‘、;、and、exec、select、insert等)就提示非法访问,并将该IP地址存入服务器黑名单数据库,使得该IP不能再访问该网址。

web应用部署前使用预防工具进行严格的安全性测试,如Pangolin。

Pangolin(中文译名为穿山甲)一款帮助渗透测试人员进行Sql注入测试的安全工具,是深圳宇造诺赛科技有限公司(Nosec)旗下的网站安全测试产品之一。 Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件,可以说是网站安全测试人员的必备工具之一。

攻击与防御一直是对立存在的两面,有新的攻击方式就会有更好的防护方法!在计算机网络方面两者更是通过长期竞争实现共同的进步;任何系统都不是完美的,既然我们不能开发出绝对安全的系统,那我们就要时刻防范各种可能的攻击。出现漏洞及时修复,这样才能保证我们系统的安全与稳定!

相关阅读
如何防止xss攻击如何防止xss攻击 解析如何防止XSS跨站脚本攻击

这些规则适用于所有不同类别的XSS跨站脚本攻击,可以通过在服务端执行适当的解码来定位映射的XSS以及存储的XSS,由于XSS也存在很多特殊情况,因此强烈推荐使用解码库。另外,基于XSS的DOM也可以通过将这些规则运用在客户端的不可信数据上来定位。不可信数据不可信数据通常是来自HTTP请求的数据,以URL参数、表单字段、标头或者Cookie的形式。

如何防止网络诈骗如何防止网络诈骗 中学生如何防止网络诈骗

现在全国世界科技发展相当快速,网络已经成为人们离不开的重要部分,甚至有很多中学生都在网络上查资料或者与同学聊天。中学生,处于懵懂无知,身心正在发育的期间,很有可能遭受到网络诈骗,那么我们中学生如何防止网络诈骗呢?本文小编将针对这一问题给大家整理相关资料。一、遭遇到网络诈骗,该怎么办?1、当地报案。因为网络欺诈涉嫌犯罪。

如何防止溺水如何防止溺水 6青少年游玩溺亡 如何防止溺水

不知道大家关注了没有,前段时间又有一个关于6青少年游玩溺亡的新闻。目前来看溺亡已经成为第一号凶手,事发的地点多在水况不明的天然水体。尤其是老家的江河、水库、湖泊等是最容易发生溺水的地方。如何防止溺水?这个问题让人深思,现在我们就来看看该怎么防止溺水事件的发生。如何防止溺水1、最好让未成年的孩子们到室内游泳。

如何防止衣服掉色如何防止衣服掉色 衣服掉色咋办 如何防止衣服掉色?

日常生活中我们总会遇到衣服掉色咋办的尴尬,看着自己喜欢的衣服掉色掉得面目全非,扔掉了又可惜,穿着又别扭,那衣服掉色咋办呢?有什么办法可以防止衣服掉色?今天就为大家介绍一下衣服掉色了如何处理。防止衣服掉色第一招:酸洗法。需要原料:食用醋这一招主要针对的是红色或是紫色等颜色鲜艳的纯棉衣服和针织品。方法是在洗涤这些衣服之前。

如何防止打呼噜如何防止打呼噜 女生如何防止打呼噜 五大妙招解决问题

打呼噜是不分男女的,只是在打呼噜的人群中,男性所占的人数偏多而已。有些女生有打呼噜的情况,但自己是很难发现的,一般都是家人、同学或者朋友发现,才知道自己会打呼噜。那么,女生如何防止打呼噜呢?接下来,就为大家介绍五种可以防止打呼噜的妙招。女生如何防止打呼噜1、改变睡姿女生出现打呼噜的症状,很可能与自己的睡姿有关。

推荐阅读
如何防止别人蹭wifi如何防止别人蹭wifi 隐藏你的无线路由器信息的设置方法介绍
如何防止xss攻击如何防止xss攻击 解析如何防止XSS跨站脚本攻击
女人吃黑蒜有什么好处女人吃黑蒜有什么好处 黑蒜的作用与功效 女性吃了它能养宫
皮肤粗糙干燥怎么办皮肤粗糙干燥怎么办
蜂蜜姜茶能治感冒吗蜂蜜姜茶能治感冒吗 孕妇可以喝蜂蜜姜茶 孕妇着凉感冒怎么办
心肌梗塞有多严重心肌梗塞有多严重 患严重心肌梗塞一般能活多久
老是口干是什么原因老是口干是什么原因 长期口干是干燥综合症的原因