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