xss攻擊與防護

1、XSS攻擊

Cross Site Scripting跨站腳本攻擊前端

利用js和DOM攻擊。數據庫

盜用cookie,獲取敏感信息瀏覽器

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

劫持前端邏輯服務器

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

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

2、攻擊原理和手段

攻擊方式分佈式

  • 反射性
  • 存儲性

一、反射型攻擊

發出請求時,XSS代碼出如今URL中,做爲輸入提交到服務器端,服務器解析後響應,XSS代碼隨響應內容一塊兒傳回給瀏覽器,最後瀏覽器解析執行XSS代碼。這個過程像一次反射,故叫反射型XSS。編碼

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

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

二、存儲型攻擊

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

更隱蔽。

XSS存在的位置

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

XSS攻擊注入點:

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

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

3、防護

一、瀏覽器自帶防護

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

二、編碼轉義

不能讓全部用戶輸入保持原樣

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

用轉義字符代替字符。

轉義的時機

  • 存儲時
  • 顯示時

三、過濾

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

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

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

onerror自動觸發xss。 

style:body:display:none.

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

iframe引入其它頁面資源。

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

三、CSP

CSP: Content Security Policy 

相關文章
相關標籤/搜索