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

从而执行了非法的数据查询,从而执行了非法的数据查询

简介

简介

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

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

  根据相关技术原理,SQL注入可以分为平台层注入及代码层注入。前者由未安全之数据库配置或者数据库平台的狐狸尾巴所予;后者要是出于程序员对输入未开展细心地过滤,从而执行了不法的数码查询。基于此,SQL注入的发生原因通常表现在以下几端:

  根据有关技能原理,SQL注入可以分为平台层注入和代码层注入。前者由未安全的数据库配置或者数据库平台的狐狸尾巴所给;后者要是由于程序员对输入未进行仔细地过滤,从而执行了非法的多少查询。基于此,SQL注入的发生原因通常表现在以下几上面:

  1.
不当的种处理;

  1.
不宜的类处理;

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

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

  3.
不成立之查询集处理;

  3.
无成立之查询集处理;

  4.
不当之错误处理;

  4.
不当的错误处理;

  5.
转义字符处理不确切;

  5.
转义字符处理不对路;

  6.
几近个提交处理不当。

  6.
大多单提交处理不当。

 

 

防止SQL注入

防止SQL注入

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

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

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

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

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

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

  4.
永不管机密信息直接存放,加密要hash掉密码和灵活的音讯。(敏感信息加密)

  4.
决不将机密信息直接存放,加密或者hash掉密码及灵活的音讯。(敏感信息加密)

  5.
动之异常信息应该吃有尽可能少的提拔,最好用由定义的错误信息对原始错误信息进行打包。

  5.
采用的老大信息应为出尽可能少的唤醒,最好使用自定义之错误信息对原错误信息进行包装。

 

 

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

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