国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
跨域post請求實現(xiàn)方案小結(jié)
【名詞解釋】
跨域:https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript
同源策略(注意Network Access這一節(jié)):http://www.w3.org/Security/wiki/Same_Origin_Policy
【問題描述】
瀏覽器出于安全的考量(避免惡意網(wǎng)站輕易讀取其他網(wǎng)站顯示的內(nèi)容,因為該內(nèi)容可能含有敏感信息,想象iframe嵌套銀行網(wǎng)頁)原則上允許跨域?qū)懚拗屏丝缬蜃x。寫是指數(shù)據(jù)的上行/發(fā)送(sending request),讀是指數(shù)據(jù)的下行/接收(receiving response)。(然而跨域?qū)懸彩呛懿话踩?,容易?dǎo)致CSRF/clickjacking攻擊。瀏覽器已經(jīng)限制了跨域讀,再限制跨域?qū)懙脑?,那互?lián)網(wǎng)的每個頁面都成了孤島。避免非法跨域?qū)懶枰玫絫oken,本文不做討論。)
考慮下述情況:
  1. 指向外部域名的link和通過表單的向外部域發(fā)起get請求是一樣的,也都是允許的,點擊那一刻起,瀏覽器的當前域名轉(zhuǎn)向了目標網(wǎng)站,也就完全是域內(nèi)寫、讀了。
  2. 通過表單向外部域發(fā)起post請求也是允許的,理由同上,源網(wǎng)站無法讀取目標網(wǎng)站的任何內(nèi)容。
  3. AJAX(借助XMLHttpRequest對象)跨域get/post是禁止的,因為使用AJAX就是為了讀取響應(yīng)的內(nèi)容,這觸碰了跨域讀的限制。
  4. JSONP屬于跨域讀,且形式限制為get請求,因為它利用了script標簽的特性(瀏覽器認為跨域讀腳本是例外,類似的還有img、iframe等等,注意它們共有的src屬性)。
因此對于瀏覽器而言:1和2沒有跨域;3遵循了限制跨域讀的原則;4屬于允許的例外。
雖然JSONP很好用,但它注定是get請求,get請求有語義要求(冪等)、長度限制(為了兼容限制255字節(jié))、安全隱患(容易受到csrf攻擊,csrf的解決必須是post請求配合token使用)。
那么,如何實現(xiàn)跨域post請求呢?
【解決方案】
1、CORS
概述:Cross-Origin Resource Sharing,W3C制定的跨站資源分享標準。post前會產(chǎn)生一次options嗅探(稱之為preflight,但簡單請求不會出現(xiàn))來確認有否跨域請求的權(quán)限;客戶端post時會帶上Origin頭指示來源網(wǎng)站,服務(wù)端響應(yīng)時需帶上Access-Control-Allow-Origin頭與Origin頭的值匹配,以示許可。ie8提供了封裝好的XDomainRequest對象,部分實現(xiàn)了該標準;而其它瀏覽器則提供了XMLHttpRequest(Level 2)對象。
要求:ie8(XDomainRequest)/ie10/safari4/GC/FF3.5
參考:cross-site xmlhttprequest with CORS
參考:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS 
參考(中文):http://www.zfkun.com/394.html (simple reuest的定義描述不完整)
優(yōu)點:W3C標準方案
缺點:不兼容老瀏覽器,移動瀏覽器尚未支持。   桌面和移動瀏覽器兼容性
注意:若在多個iframe之間跨域通信,優(yōu)先考慮 window.postMessage
2、invisible iframe
概述:通過js動態(tài)生成不可見表單和iframe,將表單的target設(shè)為iframe的name以此通過iframe做post提交。提交后由于跨域,無法直接讀取響應(yīng)內(nèi)容。一般的做法是,iframe內(nèi)通過js改變自身location的fragment,外部則監(jiān)聽iframe的onload事件,讀取fragment的內(nèi)容。有現(xiàn)成的跨域iframe通信類庫,如jQuery PostMessage Plugin。
要求:ie6/safari/GC/FF4
優(yōu)點:兼容性佳,facebook,google,新浪已/曾采用
缺點:依賴hack實現(xiàn),響應(yīng)數(shù)據(jù)量大時需要切片、多次設(shè)置fragment并輪詢,響應(yīng)頻繁時可能失效。
3、server proxy 
概述:當前域?qū)崿F(xiàn)一個代理,所有向外部域名發(fā)送的請求都徑由該代理中轉(zhuǎn)。
缺點:每個使用方都需要部署代理,數(shù)據(jù)中轉(zhuǎn)低效,對js有侵入。
4、flash proxy
概述:利用不可見的swf跨域post提交數(shù)據(jù),需要部署crossdomain.xml。例如alirte會自動檢測,若用戶安裝了flash,則以此實現(xiàn)跨域通信。
要求:flash9
優(yōu)點:ADOBE標準方案,相對CORS兼容性佳,相對invisible iframe響應(yīng)數(shù)據(jù)量較大時優(yōu)勢明顯。
缺點:依賴flash。
原文:http://blog.csdn.net/doraeimo/article/details/7329779
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WEB常見漏洞之CSRF(基礎(chǔ)原理篇)
什么是CSRF攻擊?其攻擊原理是什么?
CSRF——攻擊與防御
Kali Linux Web滲透測試手冊(第二版) - 4.8- 執(zhí)行跨站點請求偽造攻擊
字節(jié)一面:post 為什么會發(fā)送兩次請求?被問懵了…
Python學(xué)習(xí)教程:必須掌握的Cookie知識點都在這里了
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服