CSRF攻擊及防禦措施
阿新 • • 發佈:2019-01-01
CSRF,跨站請求偽造,簡單來說是盜用使用者的身份,以使用者的身份傳送惡意請求,比如以使用者的身份進行銀行轉賬等。
原理:使用者登入信任網站A,並生成本地cookie,在沒有登出A的情況下,訪問了危險網站B,B網站中要求訪問第三方站點,發出request請求,瀏覽器帶著A產生的cookie訪問。
防禦措施:
a.在請求地址中新增token並驗證
在請求中放入攻擊者不能偽造的資訊,並且該資訊不在cookie中,開發者可以在http請求中以引數的形式加入一個隨機產生的token,並且在伺服器建立一個攔截器來驗證這個token。如果請求中沒有token或者token中內容不正確的話,表示可能是攻擊者發動的攻擊。
b.驗證HTTP Referer欄位
http頭中有一個referer,記錄http請求的來源地址,訪問一個安全受限的頁面的請求必須來自同一個網站。當用戶要提交一個請求時,請求的referer值需是提交按鈕(觸發請求)所在的頁面的URL。
c.在http頭中自定義屬性並驗證
通過XHR這個類,一次性給所有該類請求加上csrftoken這個http頭屬性,並且把token值放入其中。
d.驗證碼
每次使用者提交都在表單上填寫一個圖片上的隨機字串作為驗證碼。