CSRF(Cross Site Request Forgery,跨站請求偽造)攻擊,是一種利用用戶已登錄的身份去發(fā)起跨站請求的攻擊方式。攻擊者通過某種方式獲取到網(wǎng)站的某個頁面或接口,把惡意的操作腳本插入其中,當(dāng)用戶訪問該頁面時,惡意腳本會自動執(zhí)行,將用戶的瀏覽器發(fā)送的請求偽裝成針對目標(biāo)網(wǎng)站的請求進(jìn)行發(fā)送。
攻擊步驟如下:
攻擊者構(gòu)造請求,設(shè)置好目標(biāo)網(wǎng)站的地址和參數(shù)。
攻擊者將請求通過電子郵件、QQ、微信等方式欺騙用戶訪問頁面或點擊鏈接,或通過XSS等方式注入惡意代碼。
用戶的瀏覽器接收到請求并自動執(zhí)行惡意腳本,發(fā)送請求到目標(biāo)網(wǎng)站并攜帶了攻擊者構(gòu)造的請求參數(shù)。
目標(biāo)網(wǎng)站接收到請求后,由于是用戶已經(jīng)登錄的身份發(fā)起的請求,服務(wù)器會對請求進(jìn)行驗證并執(zhí)行操作。
攻擊原理圖如下:
CSRF攻擊產(chǎn)生的根本原因,是由于Web應(yīng)用程序的設(shè)計和實現(xiàn)上存在缺陷,即缺乏有效的身份驗證和請求判斷驗證措施。這種缺陷給攻擊者可乘之機(jī),透過用戶身份欺騙服務(wù)器授權(quán),執(zhí)行攻擊者選取的危害操作,從而對用戶個人信息、賬戶財產(chǎn)等造成損失。