gpt4 book ai didi

java - 为什么 OWASP 将 HTML 列入白名单而不是黑名单信任方法?

转载 作者:行者123 更新时间:2023-12-02 12:12:14 36 4
gpt4 key购买 nike

更新了不良术语

我正在看JSoupOWASP Java HTML sanitizer project 。我只对这样的工具感兴趣,其目的是通过清理传递到 API 层的用户输入来防止 XSS 攻击。 OWASP 项目表示

"Passing 95+% of AntiSamy's unit tests plus many more."

但是,它并没有告诉我在哪里可以自己看到这些测试。这些测试涵盖哪些内容?更简单地说,我想知道为什么这些工具默认为白名单信任。

我确信他们选择白名单与黑名单是有原因的。我只想禁止已知的 XSS 不安全标签,例如 script 和属性,例如 on*。黑名单方法似乎根本不可能。

我需要知道这样做的原因是什么,我怀疑它在测试中。例如,为什么不允许 style 标签?它对于 XSS 来说是危险的还是因为其他原因而存在? (style 可能是 XSS 不安全的,如评论中所述: XSS attacks and style attributes )

我正在为其他标签寻找更多 XSS 不安全理由。如果有人知道在哪里可以找到单元测试本身就足够了。考虑到足够多的不安全标签,这应该告诉我为什么需要白名单方法。

最佳答案

原始的反同性测试位于 AntiSamyTest (antisamy) .

它们在 AntiSamyTest (owasp) 中针对 owasp 进行了改编.

它们包含针对不同 html 片段的测试,例如:

assertSanitizedDoesNotContain("<TABLE BACKGROUND=\"javascript:alert('XSS')\">", "background");

assertSanitizedDoesNotContain("<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K\">", "<meta");

请参阅XSS Evasion Cheat Sheet更多示例。

我们尝试过黑名单,但不断发现新的标签或属性可用于绕过黑名单,或者绕过过滤器使用格式错误的 html 和其他编码,从而使黑名单变得不切实际且无效。所以现在默认的假设是,如果标签、属性或样式没有明确指定为安全,那么它就是不安全的。这不仅可以防止我们已知的 xss 攻击,还可以防止许多新类型的攻击。<​​/p>

关于java - 为什么 OWASP 将 HTML 列入白名单而不是黑名单信任方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46455811/

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