<尚大教育,教育至上,人才为大:sdedu.cc>
注入漏洞
SQL 注入的特点:
·广泛性。SQL 注入攻击可以跨越Windows 、UNIX 、Linux 等各种操作系统进行攻击,其攻击目标非常广泛,而且在目前看来Web 应用程序应用广泛,它们存在的漏洞也大都具有相似性。
·隐蔽性。SQL 注入通过正常的端口访问,通过端口的数据都是被防火墙所许可的,因此防火墙是不会对SQL 注入攻击进行拦截,而系统对用户输入的参数不进行检查和过滤,不对用户输入数据的合法性进行判断,使得攻击者可以顺利地访问数据库。
·攻击时间短。SQL 注入可在短短几秒到几分钟内进行一次数据库的访问,在访问的过程中,数据窃取,植入木马,对整个数据库或是Web 服务器进行控制都是可以的。
·危害大。目前大多的办公、通信、商务都是基于Web 服务的应用程序。可以想象一旦遭到攻击后果的严重性。另一方面就是关于个人信息的窃取,攻击者侵入数据库窃取数据,伪造权限等等。
从SQL 注入攻击的例子可以看出漏洞攻击的危害性很大,我们可以从以下几个方面来避免漏洞攻击:
·常使用自带的安全的API ,完全避免使用解释器或提供参数化界面的API。用户的输入不能够直接嵌入到查询语句中,输入内容应该经过过滤,或者使用参数化的语句来传递用户输入的变量。但要注意有些参数化的API,比如存储过程(stored procedures) ,如果使用不当,仍然可以引入注入漏洞。
·如果没法使用一个参数化的API ,那么你应该使用解释器具体的escape 语法来避免特殊字符。比如,分号分隔符,它表明一条语句的结束和另一条语句的开始,是注入式攻击的主要帮凶。注释分隔符,注释掉该语句执行位置后面的所有语句。但由于很多应用在输入中需要特殊字符,这一方法不是完整的防护方法。
·加强对用户输入的验证。使用正面的或“白名单”中的具有恰当的规范化的输入验证方法会有助于防止注入攻击。拒绝包含二进制数据、转义序列和注释字符的输入内容,可以防止脚本注入、某些缓冲区溢出攻击。
<尚大教育,教育至上,人才为大:sdedu.cc>