Web安全之注入类漏洞详解及预防

如何理解注入类漏洞

注入(Injection)类攻击是 Web 安全领域中最常见的攻击方式,注入攻击发生在当不可信的数据作为命令或者查询语句的一部分被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,导致解释器执行了非预期的命令。通俗一点来讲就是把用户输入的数据当作了代码执行,发生注入类攻击需满足两个关键条件:

  1. 用户能够控制输入

  1. 程序原本要执行的代码拼接了用户输入的数据。

常见的注入类漏洞及预防措施

常见的注入攻击一般发生在执行SQL语句、执行NoSQL语句、执行系统命令、ORM使用、在 LDAP 目录中执行查找、生成要发送到 Web 浏览器的 HTML 页面等场景中。

  • 注意避免xml注入、代码注入、SQL注入、HTML注入等注入型安全问题的发生,一定要在数据拼接的地方进行安全检查,对拼接内容进行严格校验和必要的转义处理。

  • 禁止字符串拼接 SQL 访问数据库,最好使用MySQL预编译语句,绑定变量方式,DB层方法禁止传入拼接好的 sql 语句。

  • 对接口参数进行严格校验,包括是否必传、类型、长度、格式、范围等。

  • 前端页面对用户的输入进行过滤,通过将<> ‘’ “”等字符进行转义,移除用户输入的Style节点、Script节点、Iframe节点。

  • 根据输出数据所在的上下文来进行相应的编码。数据放置于HTML元素中,需进行HTML编码,放置于URL中,需要进行URL编码。此外,还有JavaScript编码、CSS编码、HTML属性编码、JSON编码等等。

  • 给cookie设置HttpOnly和Secure属性,HttpOnly属性使js脚本无法读取到cookie信息,Secure属性限制cookie只允许https协议的请求使用。

预防注入类攻击的最好方法是代码审核,可以将静态的(SAST)、动态的(DAST)和交互式(IAST)的安全测试工具集成到 CI/CD 流程中,以便在部署到生产环境之前检测出并解决掉注入类安全问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值