官术网_书友最值得收藏!

1.3 跨站請求偽造

跨站請求偽造(Cross-Site Request Forgery, CSRF)也被稱為one-click attack或者session riding,有時寫作XSRF,是一種挾制用戶在當(dāng)前已登錄的Web應(yīng)用程序上執(zhí)行非本意操作的攻擊方法。與XSS相比,XSS利用的是用戶對指定網(wǎng)站的信任,CSRF利用的是網(wǎng)站對用戶網(wǎng)頁瀏覽器的信任。

現(xiàn)有兩個網(wǎng)站A Site、B Site, A Site為用戶信任站點,B Site為攻擊者構(gòu)造的惡意站點,如圖1-81所示。

圖1-81 構(gòu)造惡意站點

受害用戶登錄受信任的A站點,A站點會在返回給瀏覽器的信息中帶上已登錄的cookie, cookie信息會在瀏覽器端保存一定的時間(根據(jù)服務(wù)端設(shè)置而定),這里設(shè)置了一個cookie“CSRF=this is B COOKIE”模擬用戶登錄A站點,如圖1-82所示。

圖1-82 模擬用戶登錄A站點

登錄A站點以后,用戶在沒有登出(清除A站點的cookie)A站點的情況下,訪問惡意站點B。這時B站點會劫持用戶向A站點發(fā)起請求,而這個請求會帶上瀏覽器端所保存的A站點的cookie,如圖1-83所示。

A站點根據(jù)請求所帶的cookie,判斷此請求為受害用戶所發(fā)送的。因此,A站點會根據(jù)受害用戶的權(quán)限來處理B站點所發(fā)起的請求,而這個請求可能以受害用戶的身份發(fā)送郵件、短信、消息,以及進(jìn)行轉(zhuǎn)賬支付等操作,這樣B站點就達(dá)到了偽造受害用戶請求A站點的目的。這就是CSRF漏洞的攻擊方式。

圖1-83 查看cookie

由于瀏覽器同源策略的存在,兩個非同源網(wǎng)站直接訪問是受限制的。訪問非同源網(wǎng)站的資源被稱為跨域,CSRF也叫作跨域攻擊。

跨域可以使用HTML標(biāo)簽訪問,也可以使用JavaScript訪問。JavaScript訪問非同源網(wǎng)站時,訪問請求是可以發(fā)送的,但是服務(wù)端將響應(yīng)送回后,客戶端的瀏覽器默認(rèn)不接受請求。

幾種常見的跨域方式如下。

● img標(biāo)簽屬性。

● iframe標(biāo)簽屬性。

● script標(biāo)簽屬性。

● JavaScript方法:Image對象、XML對象、HTTP對象。

● JSONP。

● CORS。

主站蜘蛛池模板: 靖边县| 文登市| 西乌| 罗城| 温宿县| 山西省| 达孜县| 巴林左旗| 利川市| 大新县| 尼木县| 商水县| 郓城县| 松原市| 盐山县| 承德县| 偏关县| 金秀| 武鸣县| 长沙县| 正镶白旗| 桑日县| 鄱阳县| 赤城县| 石渠县| 江津市| 周口市| 甘德县| 休宁县| 盐边县| 宣城市| 金川县| 讷河市| 望城县| 凭祥市| 泾川县| 阿城市| 光泽县| 邓州市| 那坡县| 商南县|