CSRF 跨站請求偽造攻擊
阿新 • • 發佈:2020-07-28
CSRF 跨站請求偽造攻擊
CSRF 原理
下圖大概描述了 CSRF 攻擊的原理,可以理解為有一個小偷在你配鑰匙的地方得到了你家的鑰匙,然後拿著要是去你家想偷什麼偷什麼。
CSRF 攻擊必須要有三個條件:
(1)使用者已經登入了站點 A,並在本地記錄了 cookie
(2)在使用者沒有登出站點 A 的情況下(也就是 cookie 生效的情況下),
訪問了惡意攻擊者提供的引誘危險站點 B (B 站點要求訪問站點A);
(3)站點 A 沒有做任何 CSRF 防禦
預防 CSRF
CSRF 的防禦可以從服務端和客戶端兩方面著手,防禦效果是從服務端著手效果比較好, 現在一般的 CSRF 防禦也都在服務端進行。服務端的預防 CSRF 攻擊的方式方法有多種, 但思路上都是差不多的,主要從以下兩個方面入手: (1)正確使用 GET,POST 請求和 cookie (2)在非 GET 請求中增加 token 一般而言,普通的 Web 應用都是以 GET、POST 請求為主,還有一種請求是 cookie 方式。 我們一般都是按照如下規則設計應用的請求: (1)GET 請求常用在檢視,列舉,展示等不需要改變資源屬性的時候(資料庫 query 查詢的時候) (2)POST 請求常用在 From 表單提交,改變一個資源的屬性或者做其他一些事情的時候 (資料庫有 insert、update、delete 的時候)