CSRF(Cross Site Request Forgery,跨站請(qǐng)求偽造)攻擊,是一種利用用戶(hù)已登錄的身份去發(fā)起跨站請(qǐng)求的攻擊方式。攻擊者通過(guò)某種方式獲取到網(wǎng)站的某個(gè)頁(yè)面或接口,把惡意的操作腳本插入其中,當(dāng)用戶(hù)訪問(wèn)該頁(yè)面時(shí),惡意腳本會(huì)自動(dòng)執(zhí)行,將用戶(hù)的瀏覽器發(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)求通過(guò)電子郵件、QQ、微信等方式欺騙用戶(hù)訪問(wèn)頁(yè)面或點(diǎn)擊鏈接,或通過(guò)XSS等方式注入惡意代碼。
用戶(hù)的瀏覽器接收到請(qǐng)求并自動(dòng)執(zhí)行惡意腳本,發(fā)送請(qǐng)求到目標(biāo)網(wǎng)站并攜帶了攻擊者構(gòu)造的請(qǐng)求參數(shù)。
目標(biāo)網(wǎng)站接收到請(qǐng)求后,由于是用戶(hù)已經(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ī),透過(guò)用戶(hù)身份欺騙服務(wù)器授權(quán),執(zhí)行攻擊者選取的危害操作,從而對(duì)用戶(hù)個(gè)人信息、賬戶(hù)財(cái)產(chǎn)等造成損失。