Skip to main content

CSRF

跨網站要求偽造

相關錯誤

"此伺服器難以抵禦跨網站偽造要求攻擊。將每個要求附加 CSRF 權杖或 SameSite Cookie 屬性。"

問題

跨網站要求偽造 (CSRF) 是一種攻擊,激起使用者非刻意傳送要求給驗證所依據的網頁應用程式。CSRF 攻擊破壞網頁應用程式在經過驗證的使用者中所擁有的信任。

CSRF 攻擊通常針對目標,採用以下等社交工程:

  • 網路釣魚電郵

  • 聊天連結

  • 假提醒

當使用者登入網頁應用程式時,攻擊者提示他們按下內有使用於特定網頁應用程式的未經授權要求的 URL。然後使用者瀏覽器將此惡意編造的要求傳送給目標網頁應用程式,其中包括工作階段 Cookie 或儲存的認證等工作階段資訊。如果使用者在使用目標網頁應用程式的啟用工作階段中,應用程式將此新要求視為獲得授權的使用者啟始要求進行處理。結果,這就讓攻擊者入侵了網頁應用程式的 CSRF 漏洞。

攻擊程度視受害者擁有的權限等級而定。CSRF 攻擊不會直接偷取用者的身分,而是惡意探索使用者以執行非他們願意的動作。

成功的 CSRF 攻擊迫使使用者執行變更狀態的要求,例如:

  • 密碼變更

  • 電郵地址變更

  • 修改或刪险記錄

  • 資金轉移

  • 購買

解決方案

若要預防 CSRF 攻擊:

  • 對所有變更狀態的要求使用 CSRF 權杖

    CSRF 權杖也稱為同步權杖或挑戰權杖,這是一個在用戶端產生供每個使用者工作階段使用的唯一和密碼值,因此無法駭入和欺騙使用者。

  • 對工作階段 Cookie 使用 SameSite Cookie 屬性

    在 Cookie 上設定 SameSite 屬性作為有 CSRF 權杖的額外保護層。SameSite 屬性僅在 Cookie 和要求都源自相同網域 (不是來自交叉網站) 的情況下允許傳送 Cookie。

Note

較舊的瀏覽器可能無法支援 SameSite Cookie。