節省實際值在通過AppScan的我們的基於Java的Web應用程序的最新掃描結果發現,該應用程序是容易產生XSS攻擊。 我做了我的研究,發現ServletFilter可能是保護應用程序的最簡單方法。 我引入了擴展HttpServletRequestWrapper的過濾器(因爲java不允許更改請求參數,所以沒有request.setParam方法)。我有一個介紹的sanitize方法,這裏是做什麼的預防的Java Web應用程序XSS攻擊,而在數據庫
result = ESAPI.encoder().canonicalize(input);
// Avoid null characters
result = result.replaceAll("\0", "");
// Clean out HTML
result = Jsoup.clean(result, Whitelist.none());
後這種變化,這是很好的,我測試了XSS vulnerabilites我和大多數是固定的。但是這造成了另一個問題。假設我有一個形式,創造一種產品,並在產品名稱的用戶進入類似
<script>alert('somethingStupid')</script>
現在理想我應該能夠這樣保存到數據庫中,但仍然可以從XSS攻擊的保護。不知道在我的過濾器或其他任何地方做什麼可以做到這一點。