對CSRF的簡單理解

Mr.Groooooooot發表於2020-11-30

CSRF(Cross-site request forgery,跨域請求偽造)

前言

CSRF是一種安全問題:攻擊者盜用你的身份(客戶端獲取的cookie)想第三方網站傳送請求,進行非法操作。

一、CSRF的過程

以訪問銀行網站為例:

  1. 使用者User訪問銀行網站,登入成功後,客戶端生成相應cookie。
  2. 在User未登出的情況下訪問了危險網站B,在網站B中觸發了一個請求,如點選圖片,該圖片src向銀行發起轉賬請求。由於User未登出,在網站B向銀行傳送請求時,會攜帶cookie。
  3. 銀行後臺響應請求,完成非法操作。
    在這裡插入圖片描述

二、如何防禦CSRF攻擊

1.驗證 HTTP Referer 欄位

HTTP Referer 欄位它記錄了該 HTTP 請求的來源地址。伺服器端可以驗證請求的來源,若同源則響應。但是,HTTP Referer 欄位可以被修改,因此並不安全。

2.使用驗證碼

在客戶端使用驗證碼可以有效防止CSRF攻擊。

3.使用token驗證

這個Token的值必須是隨機的。由於Token的存在,攻擊者無法再構造一個帶有合法Token的請求實施CSRF攻擊。

相關文章