我使用Owasp反薩米與易趣政策文件來防止我的網站上的XSS攻擊。如何不通過owasp antisamy將特殊字符轉換爲html實體
我也使用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
是的,請不要使用StringEscapeUtils.unescapeHtml(clearedHtml),因爲它會打開您的XSS攻擊,正如通信中所解釋的經濟需求。 Unescaping不僅可以隱藏實體,還可以隱藏數據中存在的任何已轉義的HTML。 – Erlend 2012-08-14 09:55:42