gpt4 book ai didi

java - 如何使用 OWASP HTML Sanitizer 允许特定字符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:22:44 27 4
gpt4 key购买 nike

我正在使用 OWASP Html Sanitizer 来防止对我的网络应用程序进行 XSS 攻击。对于许多应该是纯文本的字段,Sanitizer 的表现超出了我的预期。

例如:

HtmlPolicyBuilder htmlPolicyBuilder = new HtmlPolicyBuilder();
stripAllTagsPolicy = htmlPolicyBuilder.toFactory();
stripAllTagsPolicy.sanitize('a+b'); // return a+b
stripAllTagsPolicy.sanitize('foo@example.com'); // return foo@example.com

当我有诸如电子邮件地址之类的字段时,其中包含 +,例如 foo+bar@gmail.com 我最终在数据库。所以两个问题:

  1. + - @ 这样的字符本身是危险的吗?它们真的需要编码吗?
  2. 如何配置 OWASP html sanitizer 以允许特定字符,例如 + - @?

问题 2 对我来说是更重要的问题。

最佳答案

您可能希望使用 ESAPI API 来过滤特定字符。尽管如果您想允许特定的 HTML 元素或属性,您可以使用以下 allowElements 和 allowAttributes。

//定义策略。

Function<HtmlStreamEventReceiver, HtmlSanitizer.Policy> policy
= new HtmlPolicyBuilder()
.allowElements("a", "p")
.allowAttributes("href").onElements("a")
.toFactory();

// Sanitize your output.
HtmlSanitizer.sanitize(myHtml, policy.apply(myHtmlStreamRenderer));

关于java - 如何使用 OWASP HTML Sanitizer 允许特定字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558471/

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