Web安全有关(五):SQL注入(SQL Injection)

简介

  SQL注入攻击指的凡经构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里之一些成,通过执行SQL语句进而实施攻击者所设的操作,其重要由是程序没有仔细地过滤用户输入的多少,致使非法数据侵入系统。

  根据有关技能原理,SQL注入可以分成平台层注入及代码层注入。前者由非安全的数据库配置或者数据库平台的纰漏所与;后者要是由程序员对输入未开展细心地过滤,从而执行了非法的数量查询。基于这,SQL注入的出原因通常表现在以下几地方:

  1.
不宜之类处理;

  2.
休安全之数据库配置;

  3.
免客观的查询集处理;

  4.
不当之错误处理;

  5.
转义字符处理不恰当;

  6.
基本上只提交处理不当。

 

防止SQL注入

  1.
永恒不要相信用户的输入。对用户之输入进行校验,可以由此正则表达式,或限制长度;对单引号和对”-“进行转移等。

  2.
永久不要以动态拼装sql,可以动用参数化的sql或者直接以存储过程进行数据查询存取。(不要拼sql,使用参数化)

  3.
千古不要采用管理员权限的数据库连接,为每个应用使用单独的权能有限的数据库连接。(给程序分配合理的数据库操作权限)

  4.
决不把机密信息直接存放,加密要hash掉密码与机敏的音信。(敏感信息加密)

  5.
利用的不得了信息应叫来尽可能少的提拔,最好用由定义的错误信息对原有错误信息进行打包。

 

章转载自:http://www.cnblogs.com/Erik_Xu/p/5514879.html