CSRF
CSRF 攻擊概述

CSRF(Cross-Site Request Forgery,跨站請求偽造)是一種常見的網路攻擊手法。攻擊者會偽造受害者的身份,在受害者不知情的情況下,以受害者的名義發送惡意請求到目標網站,從而達到攻擊的目的[1]。
CSRF 攻擊的特點是:
- 攻擊者可以在受害者不知情的情況下發送請求
- 攻擊請求是以受害者的身份發送的
- 攻擊請求會被目標網站誤認為是受害者自己發送的合法請求
CSRF 攻擊的危害
CSRF 攻擊可能造成以下危害:
- 盜取用戶的隱私信息
- 冒用用戶名義發帖、發送垃圾郵件
- 执行财务操作,如转账等[1]
防御 CSRF 攻擊的方法
-
檢查 HTTP Referer 頭:檢查請求的 Referer 頭是否來自預期的網站[1]
-
使用 CSRF Token:在表單中添加一個隨機生成的 token,並在伺服器端驗證 token 的正確性[1]
-
使用雙重 Cookie 驗證:將 CSRF token 儲存在 Cookie 中,並在請求時檢查 Cookie 中的 token 是否與表單中的一致[1]
-
使用同源策略:瀏覽器會阻擋跨域的 AJAX 請求,可以利用這一特性來防禦 CSRF 攻擊[1]
-
使用 SameSite Cookie 屬性:設置 Cookie 的 SameSite 屬性為 Strict 或 Lax,可以限制 Cookie 在跨站請求時不會被發送[1]
-
對 HTTP 方法進行限制:對於危險操作,如轉帳等,限制只能使用 POST 方法提交[1]
Citations: [1] https://docs-99.vercel.app/security/csrf.html