CSRF學習筆記之CSRF的防禦

referer 驗證

     根據HTTP協議,在http請求頭中包含一個referer的字段,這個字段記錄了該http請求的原地址.通常情況下,執行轉賬操作的post請求www.bank.com/transfer.php應該是點擊www.bank.com網頁的按鈕來觸發的操作,這個時候轉賬請求的referer應該是www.bank.com.而如果黑客要進行csrf攻擊,只能在自己的網站www.hacker.com上僞造請求.僞造請求的referer是www.hacker.com.所以我們通過對比post請求的referer是不是www.bank.com就可以判斷請求是否合法.

這種方式驗證比較簡單,網站開發者只要在post請求之前檢查referer就可以,但是由於referer是由瀏覽器提供的.雖然http協議有要求不能篡改referer的值.但是一個網站的安全性絕對不能交由其他人員來保證.

token 驗證

      從上面的樣式可以發現,攻擊者僞造了轉賬的表單,那麼網站可以在表單中加入了一個隨機的token來驗證.token隨着其他請求數據一起被提交到服務器.服務器通過驗證token的值來判斷post請求是否合法.由於攻擊者沒有辦法獲取到頁面信息,所以它沒有辦法知道token的值.那麼僞造的表單中就沒有該token值.服務器就可以判斷出這個請求是僞造的.

轉載於:https://segmentfault.com/a/1190000007932293

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章