Java中是否有一個用於清理CSS樣式表的好庫?我們希望允許管理員用戶上傳CSS樣式表來控制他們管理的網站部分的外觀。當然,我們不希望對背景進行allox XSS攻擊:url(javascript :),所以我們正在尋找一個很好的衛生處理解決方案。使用Java對CSS進行淨化處理
到目前爲止,我發現的唯一一件事就是使用Google Caja CssTree parser從CSS中排除危險標籤。我最終可能會用到這樣的東西,但是如果有人知道一個庫,我不需要爲這些依賴關係提取和提取,這將是有益的。
解決方案:使用AntiSamy庫像維尼特·雷諾茲建議
Policy policy = Policy.getInstance("antisamy.xml");
ResourceBundle messages = ResourceBundle.getBundle("AntiSamy", Locale.getDefault());
CssScanner scanner = new CssScanner(policy, messages);
CleanResults results = scanner.scanStyleSheet(stylesheet, Integer.MAX_VALUE);
哇 - 非常感謝這一點 - 我可能會使用它的HTML以及。是什麼讓它變得特別的是它實際上有錯誤信息,所以我可以拒絕人們並告訴他們爲什麼。 – 2011-06-14 19:34:09
@Ransom,很高興知道它會滿足您的需求。但是,請仔細閱讀GoogleCode上的問題頁面。 – 2011-06-15 06:01:43