更新時(shí)間:2022-08-19 來源:黑馬程序員 瀏覽量:
CSRF(Cross-Site Request Forgery)為跨站請求偽造,它是一種針對Web應(yīng)用程序的攻擊方式,攻擊者利用CSRF漏洞偽裝成受信任用戶的請求訪問受攻擊的網(wǎng)站。在CSRF攻擊中,當(dāng)用戶訪問一個(gè)信任網(wǎng)站時(shí),在沒有退出會話的情況下,攻擊者誘使用戶點(diǎn)擊惡意網(wǎng)站,惡意網(wǎng)站會返回攻擊代碼,同時(shí)要求訪問信任網(wǎng)站,這樣用戶就在不知情的情況下將惡意網(wǎng)站的代碼發(fā)送到了信任網(wǎng)站,其過程如圖5-3所示。
圖5-3 CSRF攻擊過程
CSRF的攻擊過程與XSS攻擊過程類似,不同之處在于,XSS是盜取用戶信息偽裝成用戶執(zhí)行惡意活動(dòng),而CSRF則是通過用戶向網(wǎng)站發(fā)起攻擊。如果將XSS攻擊過程比喻為小偷偷取了用戶的身份證去辦理非法業(yè)務(wù),那CSRF攻擊則是騙子“劫持”了用戶,讓用戶自己去辦理非法業(yè)務(wù),以達(dá)到自己的目的。
CSRF漏洞產(chǎn)生的原因主要是對用戶請求缺少更安全的驗(yàn)證機(jī)制。防范CSRF漏洞的主要思路就是加強(qiáng)后臺對用戶及用戶請求的驗(yàn)證,而不能僅限于Cookie的識別。例如,使用HTTP請求頭中的Referer對網(wǎng)站來源進(jìn)行身份校驗(yàn),添加基于當(dāng)前用戶身份的token驗(yàn)證,在請求數(shù)據(jù)提交前,使用驗(yàn)證碼填寫方式驗(yàn)證用戶來源,防止未授權(quán)的惡意操作。