由於瀏覽器請求會自動包含與站點關聯的任何憑據
多數站點繼承了受害者的身份和特權,如Session cookie
如果使用者已通過了身份驗證,站點將無法區分偽造請求和合法請求
利用受害者尚未失效的身份認證資訊(cookie、Session等)
誘騙其點選惡意連結或者訪問包含攻擊程式碼的頁面
在受害人不知情的情況下以受害者的身份向伺服器傳送請求
完成非法轉帳等惡意的動作
可以利用社交工程,來引誘受害者點擊URL
發送一封帶有此惡意URL內容的郵件鼓勵使用者點擊
點擊後受害者可能看不見任何結果
但此時動作已經執行完畢
CSRF並沒有盜取cookie而是直接利用現有的session階段
當使用者已登入了這個網站時
我將下面這串內容貼給對方http://172.17.0.2/vulnerabilities/csrf/?password_new=12345&password_conf=12345&Change=Change#
對方點擊後,他的密碼即會被改成12345。
我將網址列的password_new=11111&password_conf=11111&Change=Change#
修改後送出
密碼則改由11111進行登入,而非一開始提供設定的12345
由於使用者必須在已經過身分驗證的狀態,才會有CSRF成立的機會
盡量避免使用自動登入
若沒有活動時記得執行登出
得以加強使用者身分的辨識機制
可以在瀏覽器上設置SameSite cookie
讓伺服器沒辦法從cookie來得到Session ID