- 攻擊的目的
- 取得線上敏感資料和敏感操作
- 利用客戶的浏覽器
- 執行js做送出或者取得cookie認證
- 本質
- 取得認證:Cookie
- 影響Cookie認證資訊的幾個重要屬性
- Domain:向哪些域發送本cookie
- Path:向哪些路徑發送本cookie
- Secure:向非ssl服務發送本cookie
- Httponly:利用javascript擷取本cookie
- P3p:當頁面作為iframe等html标簽嵌入時,ie是否接受并且發送本cookie
- 影響用戶端發送或者擷取資料的Domain同源政策
- 用戶端腳本的安全性标準
- 同協定,同域名,同端口
- 取得操作資料的權限:ajax/csrf
- P3p
- 應對方案
- 從架構上解決問題
- 設計時需要考慮的
- 我們的Cookie認證資訊真的需要設定到整個域麼
- 不同安全級别的服務可以放到一個域下麼
- 前台和背景在安全等級上是分開的,真的分開了麼
- 我們重要的業務真的已經獨立開來了麼
- 解決
- 認證cookie和應用程式cookie獨立開(保護認證)
- Httponly(放到哪個域名)
- 應用程式背景敏感操作和前台操作域名獨立(同源政策)
- 慎用p3p
- XSS防禦方案
- 過濾輸入中的特殊符号
- 區分富文本和非富文本,encode非富文本
- 對富文本開始做文法樹分析
- 加強表單驗證
- ……
- 從設計上解決問題
- 信任域的劃分是安全設計的基礎
- 通路控制系統是安全設計的核心
- 資料與代碼分離是安全設計的表現
- 白名單與不可預測性是安全設計的保障