gpt4 book ai didi

html-entities - 如何不使用 owasp antisamy 将特殊字符转换为 html 实体

转载 作者:行者123 更新时间:2023-12-04 05:50:14 24 4
gpt4 key购买 nike

我使用 Owasp Anti samy 和 Ebay 策略文件来防止对我的网站的 XSS 攻击。

我还使用 Hibernate 搜索来索引我的对象。

当我使用这段代码时:

String html = "special word: été";    

// use the Ebay configuration file
Policy policy = Policy.getInstance(xssPolicyFile.getInputStream());

AntiSamy as = new AntiSamy();
CleanResults cr = as.scan(html, policy);

// result is now : "special word: été"
result = cr.getCleanHTML();

如您所见,所有字符“é”都已转换为其等效的 html 实体“é

我的页面是 UTF-8,所以我不需要这种转换。此外,当我使用 Hibernate Search 为该文本编制索引时,它使用 html 实体为单词编制索引,因此我在索引中找不到单词“été”。

我如何强制 antisamy 不将特殊字符转换为它们的 html 实体等价物?

谢谢

PS:已打开一个问题:http://code.google.com/p/owaspantisamy/issues/detail?id=99

最佳答案

我今天早上遇到了同样的问题。

我在一个类中封装了 antisamy,并使用 apache common-lang 中的 apache StringEscapeUtil 来恢复特殊字符。

 CleanResults cleanResults = antiSamy.scan(taintedHtml);
cleanedHtml = cleanResults.getCleanHTML();
return StringEscapeUtils.unescapeHtml(cleanedHtml)

结果是一个干净的 HTML,没有 HTML 转义特殊字符。

希望这对您有所帮助。

关于html-entities - 如何不使用 owasp antisamy 将特殊字符转换为 html 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246739/

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