2013-07-31 164 views
0

我已經能夠通過在bean中寫入filter =「true」的組合來防止struts 1.2中的XSS攻擊,並且通過在標記中使用StringEscapeUtils.escapeHtml4(string)我正在使用的庫。不過,我可以通過以下形式的URL攻擊我的網站...Struts XSS預防 - 防止GET XSS

www.mysite.com/App/Start.do?logo=mylogo'><script>alert("ATTACK")</script> 

任何有關防止此問題的最佳方法的建議。我嘗試使用servlet過濾器,但我不想將所有請求輸入轉換爲特殊字符。

回答

1

我發現阻止XSS被寫入網頁之前&lt;&gt;&quot;更換所有><"人物最簡單的方法。這應該可以保護你免受XSS的侵害,只要你不將用戶輸入放置在諸如腳本標籤,圖像標籤(XSS可能來自圖像標籤的src =)等地方,因爲它們將不能夠創建它們自己的標籤。

在PHP中,您可以使用編碼所有字符的htmlSpecialChars方法執行此操作。然而,Java沒有這種方法,所以最快的方法就是替換它們,你應該自己仔細閱讀整個列表。應該不會太難實現5 replaceAll()


docs爲您的使用要求來執行我的建議上面的StringEscapeUtils方法,所以你應該檢查你的使用方法正確作爲你的例子不應該生存這種預防形式。

+0

感謝您的迴應,我正在專門討論URL,以防止用戶點擊上面的URL。或攔截所有GET請求並清除這些請求 –

+0

爲什麼URL包含XSS時不重要,URL不會被解析爲HTML。所以它不會影響你的網站。這完全是一個美學問題? – Robadob

+0

我可以將JavaScript插入到一旦URL被擊中後執行的URL中。 –