《白帽子講Web安全》4-跨站點請求僞造(CSRF)

第4章 跨站點請求僞造(CSRF)

Cross Site Request Forgery

4.1 CSRF簡介

舉例,攻擊者僅僅誘使用戶訪問了一個頁面,就以該用戶的身份在第三方站點裏執行了一次操作(刪除了搜狐博客上的一篇文章)。

4.2 CSRF進階

4.2.1 瀏覽器的Cookie策略

  1. 瀏覽器所持有的Cookie分爲兩種:
    • Session Cookie,又稱“臨時Cookie”
      • 沒有指定Expire時間,瀏覽器關閉後,Seesion-Cookie就失效了。
      • 保存在瀏覽器的內存空間中
    • Third-party Cookie,又稱“本地Cookie”
      • 服務器在Set-Cookie時指定了Expire時間,這種Cookie會保存在本地。
      • 保存在本地

4.2.2 P3P頭的副作用

  1. P3P Header,The Platform for Privacy Preference.
  2. 如果網站返回給瀏覽器的HTTP頭中包含有PSP頭,則在某種程度上來說,將允許瀏覽器發送第三方Cookie。
  3. GET & POST
  4. Flash CSRF
  5. CSRF Worm

4.3 CSRF的防禦

4.3.1 驗證碼

4.3.2 Refer Check

4.3.3 Anti CSRF Token

現在業界針對CSRF的防禦,一致的做法是使用一個Token

  1. CSRF的本質
    • CSRF攻擊成功的本質原因是,重要操作的所有參數都是可以被攻擊者猜測到的。
    • 攻擊者只有預測出URL的所有參數與參數值,才能成功地構造一個僞造地請求。
      • 解決方案
        • 把參數加密,或者使用一些隨機數,從而讓攻擊者無法猜測到參數值。
      • 存在問題
        • 加密/混淆後的URL非常難讀,對用戶非常不友好。
        • 如果加密的參數每次都改變,則某些URL將無法被用戶收藏。
        • 參數被加密或哈希,會給數據分析工作造成很大的困擾。
    • 更通用的解決方案:Anti CSRF Token
      • Token需要被同時放在表單和Session中。
      • 要注意Token的保密性和隨機性。

4.4 小結

CSRF攻擊是攻擊者利用用戶的身份操作用戶賬戶的一種攻擊方式。

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