CSRF攻擊攻擊原理及過程以下:瀏覽器
- 用戶C打開瀏覽器,訪問受信任網站A,輸入用戶名和密碼請求登陸網站A;
- 在用戶信息經過驗證後,網站A產生Cookie信息並返回給瀏覽器,此時用戶登陸網站A成功,能夠正常發送請求到網站A;
- 用戶未退出網站A以前,在同一瀏覽器中,打開一個TAB頁訪問網站B;
- 網站B接收到用戶請求後,返回一些攻擊性代碼,併發出一個請求要求訪問第三方站點A;
- 瀏覽器在接收到這些攻擊性代碼後,根據網站B的請求,在用戶不知情的狀況下攜帶Cookie信息,向網站A發出請求。網站A並不知道該請求實際上是由B發起的,因此會根據用戶C的Cookie信息以C的權限處理該請求,致使來自網站B的惡意代碼被執行。
由上面的流程能夠看出,想要達成CSRF攻擊,必須達到兩個基本條件:併發
- 登陸受信任站點A,並在本地生成Cookie。
- 在不登出A的狀況下,訪問危急站點B。