SQL注入漏洞

是什么?

是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再讲这些参数传递给后台的SQL服务器加以解析并执行。由于SQL语句本身多样性,以及用于构造的SQL语句编码方法很多,因此凡是构造SQL语句没有过滤的均存在被潜在攻击的风险。

为什么?

其本质是对于输入检查不充分,导致将SQL语句将用户提交的非法数据当做语句的一部分来执行

原理

两个条件
用户能够控制输入
程序代码拼接了用户的输入

会造成什么危害?

数据泄露、数据丢失、数据篡改
绕过认证、验证,绕过登录等功能
服务器进一步被入侵
数据、功能的损坏

触发场景?

任何客户端可控,带有参数传递到服务器的变量都可能触发SQL注入
GET;
POST;
头部注入;
COOKIE注入;
搜索注入;
User-Agent;
X-Forward-For

怎么修复?

采用参数化查询的方法(推荐)
参数化查询强制开发者先定义所有的SQL语句,然后向每个查询传递参数。
严格限定参数类型
明确参数检验的边界,必须在服务端执行数据验证
内置过滤系统(本质是黑名单,很常见但是不推荐)

怎么将损失降至最小?

数据库加固

最小权限原则
拒绝用户访问敏感的系统存储过程
限制用户所能够访问的数据库表

赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » SQL注入漏洞

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏