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