gpt4 book ai didi

security - 保护应用程序免受 XSS 攻击

转载 作者:行者123 更新时间:2023-12-05 08:34:35 28 4
gpt4 key购买 nike

我们目前正在使用 OWASP Antisamy 项目来保护我们的应用程序免受 XSS 攻击。当任何给定的表单提交给服务器时,每个输入字段都会被清理。它工作正常,但我们在公司名称、组织名称等字段上遇到问题。

例如:AT&T 的 & 号被转义,公司名称显示错误(显示为转义字符)。

我们手动更新数据库中的字段以解决此问题。然而,这是一个你可以想象的脖子痛。

有没有办法使用 OWASP antisamy 来解决这个问题,还是我们应该使用不同的库?

最佳答案

您应该只对输出 进行编码,而不是对输入进行编码。如果用户在您的应用程序中输入 AT&T,这应该存储在数据库中的 AT&T 中。无需对其进行编码,但当然要确保您使用的是参数化查询,这将防止诸如 ' 之类的字符脱离 SQL 命令上下文并导致 SQL 注入(inject)。

当你输出时,这是你唯一需要对字符进行编码的时候。例如AT&T在输出为HTML时应编码为AT&T,因此在浏览器中显示为AT&T

您的应用程序似乎正在对输入进行编码,同时也在对输出进行编码,因此像上面这样的字符串将在您的 HTML 中被双重编码,然后输出为 AT&T,从而导致问题。删除您的输入编码以解决此问题。

您应该只在输出时进行编码的原因是,如果您决定要将数据输出为不同的格式(例如 JSON 或 JavaScript),那么编码就会不同。如果为 JavaScript 正确编码,O'leary 将变为 O\x27leary,在编码为 O'leary 的 HTML 中将无法正确显示>.

关于security - 保护应用程序免受 XSS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22977849/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com