sql注入产生原因、危害及解决方案

   当我们访问动态网页时,Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。

  这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句。

  如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。

  SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

  根据相关技术原理,SQL注入可以分为平台层注入代码层注入前者由不安全的数据库配置或数据库平台的漏洞所致;

  后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。

  基于此,SQL注入的产生原因通常表现在以下几方面:

  ①不当的类型处理;

  ②不安全的数据库配置;

  ③不合理的查询集处理;

  ④不当的错误处理;

  ⑤转义字符处理不合适;

  ⑥多个提交处理不当。

 

sql注入危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
  • 网页篡改:通过操作数据库对特定网页进行篡改。
  • 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
  • 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
  • 破坏硬盘数据,瘫痪全系统。

sql注入解决方案

  1.参数验证

  2.特殊字符过滤

  3.使用参数化语句,不要拼接sql

  4.编码输出

  5.平台过滤

  总之就是要做好过滤与编码并使用参数化语句,这样基本能够解决sql注入漏洞

 

参考:

  https://blog.csdn.net/qq_34638225/article/details/81269281

  https://www.cnblogs.com/huzi007/p/6370732.html

  

posted @ 2021-04-16 19:53  zjcfrancis  阅读(4734)  评论(0编辑  收藏  举报