JSONP

JSONP

  1. Jsonp(JSON with Padding) 是 json 的一種"使用模式",可以讓網(wǎng)頁(yè)從別的域名(網(wǎng)站)那獲取資料,即跨域讀取數(shù)據(jù)仔引。
  2. 為什么我們從不同的域(網(wǎng)站)訪問數(shù)據(jù)需要一個(gè)特殊的技術(shù)( JSONP )呢先巴?這是因?yàn)橥床呗浴?/li>
  3. 同源策略,它是由 Netscape 提出的一個(gè)著名的安全策略仰挣,現(xiàn)在所有支持 JavaScript 的瀏覽器都會(huì)使用這個(gè)策略伴逸。

同源:協(xié)議、域名膘壶、端口號(hào)都相同的兩個(gè)頁(yè)面稱為同源错蝴。

同源實(shí)例

同源策略(Same origin policy)是一種約定洲愤,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略顷锰,則瀏覽器的正常功能可能都會(huì)受到影響柬赐。可以說(shuō)Web是構(gòu)建在同源策略基礎(chǔ)之上的官紫,瀏覽器只是針對(duì)同源策略的一種實(shí)現(xiàn)肛宋。

同源策略,它是由Netscape提出的一個(gè)著名的安全策略束世。
當(dāng)一個(gè)瀏覽器的兩個(gè)tab頁(yè)中分別打開來(lái) 百度和谷歌的頁(yè)面
當(dāng)瀏覽器的百度tab頁(yè)執(zhí)行一個(gè)腳本的時(shí)候會(huì)檢查這個(gè)腳本是屬于哪個(gè)頁(yè)面的酝陈,
即檢查是否同源,只有和百度同源的腳本才會(huì)被執(zhí)行毁涉。
如果非同源沉帮,那么在請(qǐng)求數(shù)據(jù)時(shí),瀏覽器會(huì)在控制臺(tái)中報(bào)一個(gè)異常贫堰,提示拒絕訪問穆壕。
同源策略是瀏覽器的行為,是為了保護(hù)本地?cái)?shù)據(jù)不被JavaScript代碼獲取回來(lái)的數(shù)據(jù)污染严嗜,因此攔截的是客戶端發(fā)出的請(qǐng)求回來(lái)的數(shù)據(jù)接收粱檀,即請(qǐng)求發(fā)送了,服務(wù)器響應(yīng)了漫玄,但是無(wú)法被瀏覽器接收茄蚯。

同源策略是什么

  1. 同源策略是瀏覽器的一個(gè)安全功能,不同源的客戶端腳本在沒有明確授權(quán)的情況下睦优,不能讀寫對(duì)方資源渗常。所以xyz.com下的js腳本采用ajax讀取abc.com里面的文件數(shù)據(jù)是會(huì)被拒絕的。
  2. 同源策略限制了從同一個(gè)源加載的文檔或腳本如何與來(lái)自另一個(gè)源的資源進(jìn)行交互汗盘。這是一個(gè)用于隔離潛在惡意文件的重要安全機(jī)制皱碘。

不受同源策略限制的

  1. 頁(yè)面中的鏈接,重定向以及表單提交是不會(huì)受到同源策略限制的隐孽。
  2. 跨域資源的引入是可以的癌椿。但是js不能讀寫加載的內(nèi)容。如嵌入到頁(yè)面中的<script src="..."></script>菱阵,<img>踢俄,<link>,<iframe>等晴及。

規(guī)避同源策略

  1. document.domain屬性

如果兩個(gè)window或者frames包含的腳本可以把domain設(shè)置成一樣的值都办,那么就可以規(guī)避同源策略,每個(gè)window之間可以互相溝通。例如琳钉,orders.example.com下頁(yè)面的腳本和catalog.example.com下頁(yè)面的腳本可以設(shè)置他們的document.domain屬性為example.com势木,從而讓這兩個(gè)站點(diǎn)下面的文檔看起來(lái)像在同源下,然后就可以讓每個(gè)文檔讀取另一個(gè)文檔的屬性歌懒。這種方式也不是一直都有用啦桌,因?yàn)槎丝谔?hào)是在內(nèi)部保存的,有可能被保存成null歼培。換句話說(shuō)震蒋,example.com的端口號(hào)80,在我們更新document.domain屬性的時(shí)候可能會(huì)變成null躲庄。為null的端口可能不被認(rèn)為是80查剖,這主要依賴瀏覽器實(shí)現(xiàn)。

  1. 跨域資源共享

這種方式使用了一個(gè)新的Origin請(qǐng)求頭和一個(gè)新的Access-Control-Allow-Origin響應(yīng)頭擴(kuò)展了HTTP噪窘。允許服務(wù)端設(shè)置Access-Control-Allow-Origin頭標(biāo)識(shí)哪些站點(diǎn)可以請(qǐng)求文件笋庄,或者設(shè)置Access-Control-Allow-Origin頭為"*",允許任意站點(diǎn)訪問文件倔监。瀏覽器直砂,例如Firefox3.5,Safari4浩习,IE10使用這個(gè)頭允許跨域HTTP請(qǐng)求静暂。

  1. 跨文檔通信

這種方式允許一個(gè)頁(yè)面的腳本發(fā)送文本信息到另一個(gè)頁(yè)面的腳本中,不管腳本是否跨域谱秽。在一個(gè)window對(duì)象上調(diào)用postMessage()會(huì)異步的觸發(fā)window上的onmessage事件洽蛀,然后觸發(fā)定義好的事件處理方法。一個(gè)頁(yè)面上的腳本仍然不能直接訪問另外一個(gè)頁(yè)面上的方法或者變量疟赊,但是他們可以安全的通過消息傳遞技術(shù)交流郊供。

  1. JSONP

JOSNP允許頁(yè)面接受另一個(gè)域的JSON數(shù)據(jù),通過在頁(yè)面增加一個(gè)可以從其它域加載帶有回調(diào)的JSON響應(yīng)的<script>標(biāo)簽近哟。

  1. WebSocket

現(xiàn)代瀏覽器允許腳本直連一個(gè)WebSocket地址而不管同源策略驮审。然而,使用WebSocket URI的時(shí)候吉执,在請(qǐng)求中插入Origin頭就可以標(biāo)識(shí)腳本請(qǐng)求的源疯淫。為了確保跨站安全戳玫,WebSocket服務(wù)器必須根據(jù)允許接受請(qǐng)求的白名單中的源列表比較頭數(shù)據(jù)峡竣。


量九。


荠列。
类浪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市肌似,隨后出現(xiàn)的幾起案子费就,更是在濱河造成了極大的恐慌,老刑警劉巖川队,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件力细,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡固额,警方通過查閱死者的電腦和手機(jī)眠蚂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)斗躏,“玉大人逝慧,你說(shuō)我怎么就攤上這事∽牟冢” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵隧饼,是天一觀的道長(zhǎng)沈堡。 經(jīng)常有香客問我,道長(zhǎng)燕雁,這世上最難降的妖魔是什么诞丽? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮贵白,結(jié)果婚禮上率拒,老公的妹妹穿的比我還像新娘。我一直安慰自己禁荒,他們只是感情好猬膨,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呛伴,像睡著了一般勃痴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上热康,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天沛申,我揣著相機(jī)與錄音,去河邊找鬼姐军。 笑死铁材,一個(gè)胖子當(dāng)著我的面吹牛尖淘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播著觉,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼村生,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了饼丘?” 一聲冷哼從身側(cè)響起趁桃,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肄鸽,沒想到半個(gè)月后卫病,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡典徘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年蟀苛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烂斋。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屹逛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汛骂,到底是詐尸還是另有隱情罕模,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布帘瞭,位于F島的核電站淑掌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蝶念。R本人自食惡果不足惜抛腕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒殉。 院中可真熱鬧担敌,春花似錦、人聲如沸廷蓉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桃犬。三九已至刹悴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攒暇,已是汗流浹背土匀。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留形用,地道東北人就轧。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓证杭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親钓丰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子躯砰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360