問題:cookies基於瀏覽器的同源策略,不同功能變數名稱的cookie不能相互訪問,為什麼可以進行跨站請求偽造呢? 原因:cookie基於瀏覽器的同源策略,確實是在實現狀態保持的時候,不能跨域訪問。 跨站請求的偽造過程:是其他網站偽造訪問原網站的請求,導致的一系列信息泄露。 具體偽造過程: 如何防止CSR ...
問題:cookies基於瀏覽器的同源策略,不同功能變數名稱的cookie不能相互訪問,為什麼可以進行跨站請求偽造呢?
原因:cookie基於瀏覽器的同源策略,確實是在實現狀態保持的時候,不能跨域訪問。
跨站請求的偽造過程:是其他網站偽造訪問原網站的請求,導致的一系列信息泄露。
具體偽造過程:
如何防止CSRF的過程呢,還是需要通過一系列雙向驗證來保證:
在用戶請求伺服器的時候,伺服器向cookie中寫入csrf_token,瀏覽器的form表單中也會寫入csrf_token,在瀏覽器進行下一次請求的時候,服務端會取到這兩個token進行比對,一致就能驗證是用戶自己訪問,不一致,就會存在偽造風險。
- 在客戶端向後端請求界面數據的時候,後端會往響應中的 cookie 中設置 csrf_token 的值
- 在 Form 表單中添加一個隱藏的的欄位,值也是 csrf_token
- 在用戶點擊提交的時候,會帶上這兩個值向後臺發起請求
- 後端接受到請求,以會以下幾件事件:
- 從 cookie中取出 csrf_token
- 從 表單數據中取出來隱藏的 csrf_token 的值
- 進行對比
- 如果比較之後兩值一樣,那麼代表是正常的請求,如果沒取到或者比較不一樣,代表不是正常的請求,不執行下一步操作