一、XSS簡介
XSS全稱:跨站腳本(Cross Site ) ,為了不和層疊樣式表( Style Sheets)的縮寫CSS混合,所以改名為XSS;攻擊者會向web頁面(input表單、URL、留言版等位置)插入惡意代碼,導致管理員/用戶訪問時觸發,從而達到攻擊者的目的。
二、XSS原理
服務器對用戶提交的數據過濾不嚴,導致瀏覽器把用戶的輸入當成了JS代碼并直接返回給客戶端執行,從而實現對客戶端的攻擊目的。
三、XSS分類 1、反射型(非持久型)
反射型XSS,又稱非持久型XSS,攻擊相對于受害者而言是一次性的,具體表現在受害者點擊了含有的惡意腳本的url,惡意代碼并沒有保存在目標網站,而Web應用程序只是不加處理的把該惡意腳本“反射”回受害者的瀏覽器而使受害者的瀏覽器執行相應的腳本。
2、存儲型(持久型)
存儲型XSS是指應用程序通過Web請求獲取不可信賴的數據,在未檢驗數據是否存在XSS代碼的情況下,便將其存入數據庫。當下一次從數據庫中獲取該數據時程序也未對其進行過濾,頁面再次執行XSS代碼持續攻擊用戶。存儲型XSS漏洞大多出現在留言板、評論區,用戶提交了包含XSS代碼的留言到數據庫,當目標用戶查詢留言時,那些留言的內容會從服務器解析之后加載出來。
3、DOM型(非持久型)
DOM,全稱 Object Model,是一個平臺和語言都中立的接口,可以使程序和腳本能夠動態訪問和更新文檔的內容、結構以及樣式,DOM-XSS簡單理解就是不與后臺服務器產生數據交互,是一種通過DOM操作前端代碼輸出的時候產生的問題。
四、XSS漏洞的危害
1.竊取用戶Cookie
2.后臺增刪改文章
3.XSS釣魚攻擊
4.利用XSS漏洞進行傳播和修改網頁代碼
5.XSS蠕蟲攻擊
6.網站重定向
7.獲取鍵盤記錄
8.獲取用戶信息等
五、XSS漏洞防御 1、對輸入和URL參數進行過濾(白名單和黑名單)
檢查用戶輸入的數據中是否包含一些特殊字符,如、’、“等,發現存在特殊字符,將這些特殊字符過濾或者編碼。
2、HTML實體編碼
字符串js編碼轉換成實體html編碼的方法(防范XSS攻擊)
3、對輸出內容進行編碼
在變量輸出到HTML頁面時,可以使用編碼或轉義的方式來防御XSS攻擊。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。