1、什麼是XSS攻擊
XSS又稱爲CSS(Cross SiteScript),跨站腳本攻擊。其原理是攻擊者向有XSS漏洞的網站中“嵌入”惡意的HTML代碼,當其他用戶瀏覽該網站時,這段HTML代碼會自動執行,從而達到攻擊的目的。如:盜取用戶Cookie、重定向到其他網站等。
理論上,所有可以輸入的地方沒有對輸入數據進行處理的話,都會存在XSS漏洞。漏洞的厲害取決於攻擊代碼的能力。
2、XSS攻擊常見危害
(1)、網站釣魚、網頁掛馬,包括盜取各類用戶賬號。
(2)、獲取用戶Cookie資料,從而獲取用戶隱私信息。
(3)、獲取客戶端信息,如用戶的瀏覽歷史、真實IP等。
(4)、強制彈出廣告頁面等。
(5)、進行大量的客戶端攻擊,如DDoS攻擊。
。。。。。。
3、XSS攻擊防範方案
(1)相對完整的輸入過濾體系。
凡是有輸入的地方,必須得對非法字符做過濾處理。
過濾”<”和”>”等標記,如果HTML內容中有針對某些不能嚴格過濾的字符,則要對這些標籤進行轉義處理。(如將”<”轉義爲”<”)
過濾特殊字符:&、回車和空格等。
關於常用的一些字符串過濾方案,我們可以寫一個常用的過濾器(filter)去執行。這裏有一篇相關博文可以借鑑。http://blog.csdn.net/catoop/article/details/50338259
(2)web表單做各類輸入校驗
表單中的各項輸入分別在客戶端和服務器端做相關正則表達式的校驗,避免非法字符的輸入。
(3)輸出檢查
除了(1)和(2)中的常見輸入檢查以外,還需要對輸出的變量進行編碼處理(htmlencode)或者對一些輸出內容進行轉義操作(escape等)。還有對富文本的內容要進行嚴格輸出,因爲富文本中的插入圖片或者代碼的標籤比較多,應該嚴格控制標籤的輸出。