我正在編寫一個servlet篩選器以保護站點免受XSS漏洞攻擊。我需要一個可以針對HTTPRequest應用的白名單,以便我可以避免任何惡意腳本和字符。創建白名單以防範基於Java的應用程序中的XSS漏洞
我可以使用正則表達式作爲白名單嗎?我應該使用哪個正則表達式,以便它包含URL的所有字符。任何其他解決方案也是可喜的。
請建議我如何爲應用程序的URL創建白名單。
在此先感謝。
更新 - 請不要標記它的投票。請參閱我的評論研究。我已經研究了很多。
我正在編寫一個servlet篩選器以保護站點免受XSS漏洞攻擊。我需要一個可以針對HTTPRequest應用的白名單,以便我可以避免任何惡意腳本和字符。創建白名單以防範基於Java的應用程序中的XSS漏洞
我可以使用正則表達式作爲白名單嗎?我應該使用哪個正則表達式,以便它包含URL的所有字符。任何其他解決方案也是可喜的。
請建議我如何爲應用程序的URL創建白名單。
在此先感謝。
更新 - 請不要標記它的投票。請參閱我的評論研究。我已經研究了很多。
您需要使用真正的HTML解析器來阻止XSS,比如JSoup。不要使用正則表達式。
下面是一個簡單的過濾器我爲Spring Security的哪個塊(希望)所有入站XSS發:
http://blog.databasepatterns.com/2015/08/simple-inbound-xss-filter-for-spring.html
你可以修改它對於非Spring環境中,或允許某些標籤,就像Hibernate Validator的@SafeHTML註解的確如此。
您可以使用ESAPI,JSoup(具有白名單功能)和JSR-303的組合來對抗XSS。
在這裏我的回答看看:How to Modify QueryParam and PathParam in Jersey 2
我已經使用JSTL標籤或FN:將escapeXml()字符編碼。我想通過過濾器應用額外的安全措施,以避免惡意腳本或字符不會影響到servlet和JSP。 –
我需要白名單來實現第一級安全性,在第二級我已經實現了字符編碼。所以請不要標記這個重複。 –
我的客戶希望將請求標記爲惡意請求,以防惡意字符注入到URL中。這就是爲什麼我需要白名單。 –