1.xss的攻擊原理
需要了解 Http cookie ajax,Xss(cross-site scripting)攻擊指的是攻擊者往Web頁面裡插入惡意html標籤或者javascript程式碼。比如:攻擊者在論壇中放一個看似安全的連結,騙取使用者點選後,竊取cookie中的使用者私密資訊;或者攻擊者在論壇中加一個惡意表單,當使用者提交表單的時候,卻把資訊傳送到攻擊者的伺服器中,而不是使用者原本以為的信任站點
2.攻擊方式,防範Xss
- 反射型
就是將帶有攻擊性的XSS 程式碼放入到URL中,作為引數提交到伺服器,也就是類似Get方式提交表單,伺服器響應之後,XSS程式碼隨響應內容一起傳回給瀏覽器,最後瀏覽器解析執行XSS 程式碼,這個過程就叫做反射性XSS。
經常通過這種方式 植入廣告–
- 儲存型
儲存型類似於post的提交的方式,提交到伺服器端(資料庫,內訓,檔案系統==)
- Dom XSS
3.XSS的防範措施
首先程式碼裡對使用者輸入的地方和變數都需要仔細檢查長度和對”<”,”>”,”;”,”’”等字元做過濾;其次任何內容寫到頁面之前都必須加以encode,避免不小心把html tag 弄出來。這一個層面做好,至少可以堵住超過一半的XSS 攻擊
- 編碼
encode 編碼,entity
- 過濾
用正則過濾一些不合法的輸入,比如dom 的相關屬性,onerror,onclick,移除使用者上傳的style,script節點,iframe,link節點等等。這樣的會被注入廣告,還有一些連結,滑鼠經過,觸發一些CSRF 攻擊。他們都有執行樣式和指令碼的執行。 - 校正
避免直接對html entity解碼
DOM parse 轉換(整個字串解析成DOM字串,當文字處理),校正不配對的DOM標籤