csrf,即cross-site request forgery,中文一般叫跨站請求偽造。
攻擊原理是,使用者在a**(登入,之後開啟乙個b**,b**的指令碼(或html標籤)向a**傳送乙個請求,這個請求會自動攜帶使用者的cookie,如果這時a**驗證成功,則完成了攻擊。
那麼,具體的攻擊過程是什麼?
1)使用者登入a**。
a**提供乙個修改使用者名稱的api,例如這個api會驗證cookie,驗證通過之後則修改使用者名稱。
很簡單吧,但這就完成了一次跨站請求偽造的攻擊。我們可以看出攻擊要點在:
1)a**的伺服器對cookie的簡單直接驗證。
2)使用者登入**a之後能引導ta開啟b**。
攻擊簡單,解決方案也很簡單:
1,保證a**的所有api介面都不只是通過驗證cookie就完成使用者確認。
2,前端與後端配合,使用同乙個演算法,在傳送請求前,居於cookie再產生乙個編碼(也可以叫token)傳送到伺服器端,伺服器端對這個token進行驗證。
為什麼能解決問題?因為**b雖然能偽造請求(即修改引數),但**b獲取不了a**的cookie,這樣**b就偽造不出這個token,a**獲取不到這個token則無法完成使用者確認。
ps:當然,伺服器端還可以通過檢測refer這個屬性來防範csrf,但這個可能會把部分使用者正常請求當成非法請求,例如https轉到http。
web安全 CSRF漏洞
描述 跨站點偽裝請求 csrf 漏洞會在以下情況下發生 1.web 應用程式使用會話 cookie。2.應用程式未驗證請求是否經過使用者同意便處理 http 請求。nonce 是隨訊息一起傳送的加密隨機值,可防止 replay 攻擊。如果該請求未包含證明其 的 nonce,則處理該請求的 將易受到 ...
web安全 CSRF(防禦篇)
csrf防禦之驗證碼 目前,驗證碼被認為是對抗csrf攻擊最簡單有效的防禦措施。用到驗證碼就是在請求過程中強制使用者與應用進行互動,但是乙個站點 乙個好的產品要考慮到使用者的體驗,顯然如果在所有的操作上都加入驗證碼對使用者來說就很不友好。因此驗證碼只能是一種防禦csrf攻擊的輔助手段,並不能成為主要...
Web安全之CSRF攻擊
csrf是什麼?csrf cross site request forgery 中文是跨站點請求偽造。csrf攻擊者在使用者已經登入目標 之後,誘使使用者訪問乙個攻擊頁面,利用目標 對使用者的信任,以使用者身份在攻擊頁面對目標 發起偽造使用者操作的請求,達到攻擊目的。舉個例子 簡單版 假如有個加關注...