簡介
跨站請求偽造(csrf)攻擊發(fā)生在惡意的網(wǎng)站期丰,郵件护侮,短信敌完,應用等當中。csrf 攻擊會使得一個已經(jīng)認證過或者登錄過的用戶的瀏覽器執(zhí)行其他網(wǎng)站的操作羊初,通常用戶不會意識到發(fā)生了什么滨溉。
csrf 攻擊的影響取決于在有漏洞的目標網(wǎng)站可執(zhí)行的操作。例如:
- Bob 登錄了銀行賬戶长赞,執(zhí)行了一些操作晦攒,但是并沒有退出。
- Bob 點擊了一封郵件中的鏈接得哆,訪問了一個陌生網(wǎng)站脯颜。
- 陌生網(wǎng)站使用 Bob 在 step 1 中會話中的 cookie ,在 Bob 的網(wǎng)銀中發(fā)出轉(zhuǎn)賬請求
- Bob 的網(wǎng)銀從陌生(惡意)網(wǎng)站收到了請求贩据,該銀行沒有 csrf token 驗證栋操,轉(zhuǎn)賬成功。
有意思的是訪問惡意網(wǎng)站的操作被包含在一個并不需要 Bob 點擊的 html 標簽中饱亮,如 <img src="www.malicious_site.com"> 矾芙。當 Bob 的設備(如瀏覽器)打開試并試圖渲染這個圖片時候,Bob 的設備將會對 maliciou_site.com 網(wǎng)站發(fā)出請求近上,就有可能遭受 csrf 攻擊剔宪。
csrf 攻擊可通過多種方式防范。最常用的就是在請求中提交 csrf token 。在這里葱绒,web 應用產(chǎn)生一個 token 的分成兩個部分感帅,一個返回給 Bob ,另一個自己保存哈街。
當 Bob 發(fā)出轉(zhuǎn)賬的請求的時候留瞳,需要提交 token拒迅,web 應用會自己保留的 token 校驗 Bob 發(fā)送來的 token骚秦。
考慮到 csrf 攻擊和 csrf token ,跨域資源共享(cors)變得十分普遍