xss攻擊與防御


一、XSS攻擊

Cross Site Scripting跨站腳本攻擊

利用js和DOM攻擊。

盜用cookie,獲取敏感信息

破壞正常頁面結構,插入惡意內容(廣告..)

劫持前端邏輯

DDos攻擊效果——分布式拒絕服務攻擊

Server Limit Dos,Http header過長,server返回400

二、攻擊原理和手段

攻擊方式

  • 反射性
  • 存儲性

1、反射型攻擊

發出請求時,XSS代碼出現在URL中,作為輸入提交到服務器端,服務器解析后響應,XSS代碼隨響應內容一起傳回給瀏覽器,最后瀏覽器解析執行XSS代碼。這個過程像一次反射,故叫反射型XSS。

  • 明文URL中value就是攻擊代碼
  • 服務器解析URL中XSS代碼並傳回
  • 瀏覽器解析執行

傳播-》URL傳播-》短網址傳播

2、存儲型攻擊

存儲型XSS和反射型XSS的差別僅在於,提交的代碼會存儲在服務器端(數據庫,內存,文件系統等),下次請求目標頁面時不用再提交XSS代碼。 

更隱蔽。

XSS存在的位置

  • 反射型——URL中
  • 存儲型——服務器端
  •  

XSS攻擊注入點:

  • HTML節點內,通過用戶輸入動態生成
  • HTML屬性,屬性是由用戶輸入
  • JavaScript代碼

  • 富文本(一大段HTML,有格式)
    •   富文本得保留HTML,HTML有XSS攻擊風險

三、防御

1、瀏覽器自帶防御

ctx.set('X-Xss-Protection',0); 反射型參數出現在HTML內容或屬性中。

2、編碼轉義

不能讓所有用戶輸入保持原樣

對用戶輸入的數據進行HTML Entity編碼。

用轉義字符代替字符。

轉義的時機

  • 存儲時
  • 顯示時

3、過濾

編碼后顯示時候還要解碼。解碼后顯示原樣代碼前過濾。

過濾掉不合法輸入,保證安全。

  • 移除用戶上傳的DOM屬性,如onerror等。
  • 移除用戶上傳的Style節點,Script節點,Iframe節點等。 

onerror自動觸發xss。 

style:body:display:none.

js對頁面有百分比操作權限。

iframe引入其它頁面資源。

通過xss注入的方式,引誘用戶觸發csrf攻擊。

3、CSP

CSP: Content Security Policy 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM