[英]why jsoup remove inlined stylesheet?
我使用jsoup保護我的應用程序免受XSS攻擊。 我得到所有的輸入參數,並在那上做Jsoup.clean。 但我有一個問題。
它刪除所有內聯樣式表! 為什么? 我在我的應用程序中有一部分,用戶可以編寫文本並將其作為公告發布。 他/她通過TinyMCE寫他/她的文本,並在用戶文本中添加一些html和樣式表。 在下面你可以看到tinymce創建的示例文本:
用戶輸入: Center Aligned Text
TinyMCE結果: <p style="text-align: center;">Center Aligned Text</p>
Jsoup.clean(text, Whitelist.relaxed())
輸出: <p>Center Aligned Text</p>
正如可以看到Jsoup刪除風格
標簽。 我怎么能說它不刪除簡單的CSS?
謝謝。
默認情況下, 白名單類會刪除樣式,但您可以使用addAttributes("p", "style")
輕松修改此行為並添加對style
支持。
Whitelist.relaxed().addAttributes("p", "style");
說明
這在清理時將元素p
屬性style
設置為忽略。 只有p
style
才會被刪除!
只需復制粘貼此代碼並從main
調用。
public static void main(String[] args) {
String text = "<p style=\"text-align: center;\">Center Aligned Text</p>";
String clean = Jsoup.clean(text, Whitelist.relaxed()
.addAttributes("p", "style"));
System.out.println(clean);
}
<p style="text-align: center;">Center Aligned Text</p>
org.jsoup:jsoup:1.7.3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.