1. 程式人生 > >CSRF的攻擊和保護

CSRF的攻擊和保護

CSRF全拼為: Cross Site Request Forgery 跨站請求偽造
CSRF指攻擊者盜用了你的身份,以你的名義發出惡意請求。

CSRF攻擊示意圖:

	1. 使用者瀏覽並登陸了正常網站A。
	2.通過使用者登入驗證,同時在使用者處產生了A的Cookie。
	3.使用者在沒有登出的情況下訪問了攻擊網站B。
	4.B要求訪問第三方站點A,發出了一個請求。
	5.根據B在(4)的請求,瀏覽器帶著2的cookie訪問A。
	6.A在不知道(5)中的請求是誰發出的,瀏覽器會自動帶上使用者C的cookie,然後去處理這個請求,同時B就達到了模擬使用者操作的目的。

防止CSRF攻擊

1.在客戶端向後端請求介面資料的時候,後端會往響應中的 cookie 中設定 csrf_token 的值
2.在 Form 表單中新增一個隱藏的的欄位,值也是 csrf_token
3.在使用者點選提交的時候,會帶上這兩個值向後臺發起請求
4.後端接受到請求,以會以下幾件事件:
從 cookie中取出 csrf_token
從 表單資料中取出來隱藏的 csrf_token 的值
進行對比
5.如果比較之後兩值一樣,那麼代表是正常的請求,如果沒取到或者比較不一樣,代表不是正常的請求,不執行下一步操作