一、什麼是xss攻擊
xss是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web使用者将代碼植入到提供給其它使用者使用的頁面中。比如這些代碼包括html代碼和用戶端腳本。攻擊者利用xss漏洞旁路掉通路控制——例如同源政策(same origin policy)。這種類型的漏洞由于被黑客用來編寫危害性更大的網絡釣魚(phishing)攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的“緩沖區溢出攻擊“,而javascript是新型的“shellcode”。
二、xss漏洞的危害
(1)網絡釣魚,包括盜取各類使用者賬号;
(2)竊取使用者cookies資料,進而擷取使用者隐私資訊,或利用使用者身份進一步對網站執行操作;
(3)劫持使用者(浏覽器)會話,進而執行任意操作,例如進行非法轉賬、強制發表日志、發送電子郵件等;
(4)強制彈出廣告頁面、刷流量等;
(5)網頁挂馬;
(6)進行惡意操作,例如任意篡改頁面資訊、删除文章等;
(7)進行大量的用戶端攻擊,如ddos攻擊;
(8)擷取用戶端資訊,例如使用者的浏覽曆史、真實ip、開放端口等;
(9)控制受害者機器向其他網站發起攻擊;
(10)結合其他漏洞,如csrf漏洞,實施進一步作惡;
(11)提升使用者權限,包括進一步滲透網站;
(12)傳播跨站腳本蠕蟲等;
……
三、如何編寫代碼來避免
如下代碼可以避免xss注入,但是作者因知識面有限,故不能保證100%能完全将xss攻擊者拒之門外,還需大家根據實際情況進行優化和改進。
既然我們通過代碼來解決問題,就盡可能的不涉及開發人員的對原有代碼修改,是以我們增加過濾器來攔截處理,本文原有架構使用springmvc。
1、illegalcharacterfilter.java
2、mhttpservletrequest.java
3、xssshieldutil.java
4、web.xml 配置