天天看點

預防XSS攻擊,(參數/響應值)特殊字元過濾

一、什麼是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 配置

繼續閱讀