csrf攻擊和防御方案

CSRF(Cross Site Request Forgery, 跨站域請(qǐng)求偽造) 是一種網(wǎng)絡(luò)的攻擊行為,它可以在受害者毫不知情的情況下以受害者名義偽造請(qǐng)求發(fā)送給受攻擊站點(diǎn),從而在并未授權(quán)的情況下執(zhí)行在權(quán)限保護(hù)之下的操作。具體流程如下實(shí)例(from: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html)

csrf攻擊步驟

舉個(gè)例子:比如有個(gè)銀行網(wǎng)址A,對(duì)應(yīng)的轉(zhuǎn)賬請(qǐng)求是transfer?to=***&money=***

1. A登錄a.com網(wǎng)址?

2. B給A發(fā)送了一個(gè)地址fake.com(里面包含了a.com/transfer?to=fakeAccount&money=1000)

3. A在未登出的情況下,訪問了B發(fā)來的fake.com

4. 結(jié)果,A的賬戶里面少了1000,轉(zhuǎn)給了fakeAccount賬戶


攻擊的方式包括get和post請(qǐng)求。get請(qǐng)求可以通過引用靜態(tài)資源發(fā)送,如<img src="a.com/888>"。post請(qǐng)求可以在偽造網(wǎng)站中放入action地址 為a.com的form表單,并在body 的onload事件中發(fā)起提交

csrf攻擊方式

防御方案

1. 添加Referer校驗(yàn)。從流程上看,正常發(fā)起的請(qǐng)求和假冒網(wǎng)址上發(fā)起的請(qǐng)求,對(duì)應(yīng)的Refer是不一樣的,可以使用這個(gè)進(jìn)行校驗(yàn)。缺點(diǎn):比如 IE6 或 FF2,目前已經(jīng)有一些方法可以篡改 Referer 值。如果要支持低版本瀏覽器,該方法并不安全。

2. 所有請(qǐng)求添加token參數(shù)。用戶登錄的時(shí)候,后臺(tái)session可以生成一個(gè)token,前端頁面發(fā)起請(qǐng)求的時(shí)候,都要帶token。缺點(diǎn):所有涉及的請(qǐng)求都要被修改。另外,如果頁面上的鏈接都被改成了a.com?token=***這種,那在在一些論壇之類的地方,如果黑客在網(wǎng)站上發(fā)布了一個(gè)地址,該地址可以獲取Referer中的token值,進(jìn)而發(fā)起攻擊

3. 請(qǐng)求頭部添加token。在使用xhr請(qǐng)求的時(shí)候,可以添加一個(gè)自定義頭部,里面包含token的數(shù)據(jù)。缺點(diǎn):如果原系統(tǒng)并不是xhr請(qǐng)求的話,修改工作量非常巨大。


參考:

1.https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/index.html

2.http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載地址:http://www.phpddt.com/reprint/csrf.htmlCSRF概念:CSRF跨站...
    matianhe閱讀 1,034評(píng)論 0 104
  • CSRF是什么? (Cross Site Request Forgery, 跨站域請(qǐng)求偽造)是一種網(wǎng)絡(luò)的攻擊方式,...
    謝澤閱讀 3,281評(píng)論 0 8
  • CSRF概念:CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存...
    raincoco閱讀 875評(píng)論 0 1
  • 什么是CSRF攻擊,要如何預(yù)防! CSRF全程Cross Site Request Forgery,跨站域請(qǐng)求偽造...
    O8閱讀 451評(píng)論 1 0
  • 轉(zhuǎn)載地址:http://www.phpddt.com/reprint/csrf.html CSRF概念:CSRF跨...
    流光汐舞閱讀 300評(píng)論 0 1

友情鏈接更多精彩內(nèi)容