|
5 `# O3 w+ H4 T3 @( x' ^# G 一.什么是SQL注入SQL注入,一般指web应用程序对用户输入数据的合法性没有校验或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
2 Q; M7 L/ d5 a% A; c 总的来说就是,攻击者通过系统正常的输入数据的功能,输入恶意数据,而系统又未作任何的校验,直接信任了用户输入,使得恶意输入改变原本的SQL逻辑或者执行了额外的SQL脚本达,从而造成了SQL注入攻击二.SQL注入的危害及案例
% x* G" q* Z" Y- E8 p8 _% ` 1.SQL注入攻击的危害SQL注入攻击的危害有很多,比如:使得系统业务功能异常或者失效恶意的破坏,比如修改数据,删数据,删表等恶意破坏;探查数据库类型,结构,获取数据库敏感数据,造成数据泄露;修改数据库配置,控制服务器,进行恶意活动等
5 k I& ^9 y- | sql注入过程及危害,如图: % k' O( t& I' Q0 b+ j, T5 _0 u) G7 ?
2.业界的案例2011年6月,LulzSec的黑客组织攻击了索尼公司网站,并获取了100万用户的个人信息,包括用户名,密码,家庭住址,生日等一些敏感信息造成了很大的影响LulzSec组织声称入侵手段就是简单的SQL注入技术,通过SQL注入,就获取到了全部的敏感信息。 . l8 W- {6 D. u. U1 L5 ^3 R
由此可以看出,SQL注入攻击的危害很多,其实最主要还是对系统的正常运行,数据安全等有很大的威胁,一旦造成敏感数据泄露,就将会是很严重的事件,也将会对公司的业务和声誉造成很大的影响因此这就要求我们系统设计开发人员要有安全意识,系统设计和开发中就要做好防御策略,从而使系统更加健壮。 9 \2 |5 M* T G `" {6 m3 I# l
三.SQL注入防御策略目前要的防御方案主要包括:参数化查询(预编译),输入验证,以及转码。各策略内容和措施如下:
/ N, f% y A! q4 e9 R1 m2 O 单一的策略并不是最可靠的,需要多种防御策略结合使用,多重防御,提升防御的坚固性。建议采用如下方案: ) p# J- j; U1 |9 S" ]/ T; y3 P$ @& n5 s4 w
& @6 ]: y, Q2 i. \. E' u
, Q7 ^; c( y3 J T/ c) b8 P7 X9 C5 Y
# w5 C5 i' u1 p8 d! o- K |