如何防止XSS攻擊

源於螞蟻課堂的學習,點擊這裏查看(老餘很給力)  

何爲XSS攻擊

 

分類 

反射型 

請求參數中包含script等特殊的指令,隨響應返回至視圖,使得視圖層執行了對應的腳本

 存儲型

參數中包含特殊的腳本,且被持久化(記錄在數據庫等地方),用戶再去使用時,讀取了這些文件,HTML解析後誤以爲是頁面腳本,
就會觸發執行

DOM 

輸出點在 DOM 。XSS代碼可能是<script src="https://xxx.js">,載入第三方的惡意腳本,這些惡意腳本通常讀取用戶的cookie

常見攻擊方法 

繞過XSS-Filter利用<>標籤注入Html/JavaScript代碼

利用HTML標籤的屬性值進行XSS攻擊。

空格、回車和Tab。關鍵字被空白隔開,例如:<img src=“javas cript:alert(/xss/);”/>

利用事件來執行跨站腳本。例如:<img src=“#” οnerrοr= “alert(1)”/>

利用CSS跨站。例如:body {backgrund-image: url(“javascript:alert(‘xss’)”)}

擾亂過濾規則。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>

利用字符編碼,通過這種技巧,不僅能讓 XSS 代碼繞過服務端的過濾,還能更好地隱藏 Shellcode

拆分跨站法,將XSS攻擊的代碼拆分開來,適用於應用程序沒有過濾 XSS 關鍵字符(如<、>)卻對輸入字符長度有限制的情況下

DOM 型的XSS主要是由客戶端的腳本通過DOM動態地輸出數據到頁面上,它不依賴於提交數據到服務器,而是從客戶端獲得DOM中
的數據在本地執行。
容易導致 DOM 型的 XSS 的輸入源包括:
Document.URL、
Location(.pathname|.href|.search|.hash)、
Document.referrer、
Window.name、
Document.cookie、
localStorage/globalStorage

如何預防

XSS Filter

按照我們指定的規則去提交數據,不符合規則的內容全部攔截

 html特殊字符轉義

顯示結果 描述 實體編號
  空格 &nbsp ;
< 小於 &lt ;
> 大於 &gt ;
& &amp ;
'' 引號 &quot ;

 Http Only cookie

許多XSS攻擊的目的就是爲了獲取用戶的cookie,我們可以將重要的cookie標記爲http only,使得腳本無法訪問cookie

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章