天天看點

網際網路安全-XSS攻擊

什麼是XSS攻擊手段

XSS, 即為(Cross Site Scripting), 中文名為跨站腳本, 是發生在目标使用者的浏覽器層面上的,當渲染DOM樹的過程成發生了不在預期内執行的JS代碼時,就發生了XSS攻擊。

例如在送出表單後,展示到另一個頁面,可能會受到XSS腳本注入,讀取本地cookie遠端發送給黑客伺服器端。

XSS危害

  1. 通過document.cookie盜取cookie
  2. 使用js或css破壞頁面正常的結構與樣式
  3. 流量劫持(通過通路某段具有window.location.href定位到其他頁面)
  4. Dos攻擊:利用合理的用戶端請求來占用過多的伺服器資源,進而使合法使用者無法得到伺服器響應。
  5. 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻擊)使用者的身份執行一些管理動作,或執行一些一般的如發微網誌、加好友、發私信等操作。
  6. 利用可被攻擊的域受到其他域信任的特點,以受信任來源的身份請求一些平時不允許的操作,如進行不當的投票活動。

XSS防禦

  1. 過濾危險的DOM節點。如具有執行腳本能力的script, 具有顯示廣告和色情圖檔的img, 具有改變樣式的link, style, 具有内嵌頁面的iframe, frame等元素節點。
  2. 過濾危險的屬性節點。如事件, style, src, href等
  3. 對cookie設定httpOnly。
對cookie的保護
  1. 對重要的cookie設定httpOnly, 防止用戶端通過document.cookie讀取cookie。服務端可以設定此字段。
對使用者輸入資料的處理
  1. 編碼:不能對使用者輸入的内容都保持原樣,對使用者輸入的資料進行字元實體編碼。對于字元實體的概念可以參考文章底部給出的參考連結。
  2. 解碼:原樣顯示内容的時候必須解碼,不然顯示不到内容了。
  3. 過濾:把輸入的一些不合法的東西都過濾掉,進而保證安全性。如移除使用者上傳的DOM屬性,如onerror,移除使用者上傳的Style節點,iframe, script節點等。