本文主要是介绍对不受信任的数据进行编码和转义以防止注入攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
根据 OWASP 进行编码和注入
来自有关此控件的 OWASP 文档:
编码和转义是旨在阻止注入攻击的防御技术。
直到2017 年,OWASP 的十大风险列表才将跨站点脚本 (XSS) 与“注入”分开列出。很多人(包括我自己)认为 XSS 是一种注入形式。因此,从这个角度来看,说输出编码可以防止注入攻击是准确的。
注入攻击、编码和解释器
转义和编码有什么区别?
在本文中,我将大量交替使用这两个术语。简而言之,转义或编码的目的是帮助在可执行上下文中将不安全的外部输入变得安全。
注入攻击的真正危险在于,它们通常具有所见非所得的性质。攻击者使用不同的编码方案(我们的解释器通常会在稍后“有帮助地”解码),绕过简单的拒绝列表方法。我记得有一次(在我刚开始了解安全意识的时候,当时我还是一名软件工程师)试图通过寻找意想不到的命令(例如DROP
或)来防御 SQL 注入 (SQLi) INSERT
。同样,一些 Web 应用程序也在输入中寻找<script>
以防御 XSS。这种方法很脆弱,从代码角度来看难以维护,从安全角度来看无效。此外,对 SQLi 的真正防御是参数化查询(它会为您编码,稍后会详细介绍),但让我们回到编码。
编码既可用于攻击,也可用于防御。在攻击中,恶意用户可能会发送
这篇关于对不受信任的数据进行编码和转义以防止注入攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!