欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Webkit的跨域安全問題說明

 更新時(shí)間:2011年09月13日 22:17:02   作者:  
在使用try catch處理iframe跨域產(chǎn)生的異常時(shí),chrome和safari瀏覽器似乎不能正常運(yùn)作:他們直接拋出了錯(cuò)誤而沒有拋出可供JS截獲的異常。
這里有個(gè)簡單的測(cè)試頁面:IE、火狐彈出"hello world",而chrome,safari,opera毫無反應(yīng)。
以下是小段測(cè)試代碼(刻意修改domain,讓父頁面和子頁面為不同域頁面):
1.父頁面代碼:
復(fù)制代碼 代碼如下:

<script>
document.domain = "nunumick.me";
function doTest(){
alert('hello world');
}
</script>
<iframe src="http://www.nunumick.me/lab/x-domain/webkit-test.html">
</iframe>

2.子頁面代碼:
復(fù)制代碼 代碼如下:

<script>
try{
top.name;
}catch(e){
document.domain = 'nunumick.me';
top.doTest();
}
</script>

以上代碼目的是嘗試在訪問異常時(shí)動(dòng)態(tài)修改domain達(dá)到順利訪問,但webkit內(nèi)核瀏覽器粗暴地報(bào)錯(cuò)而非拋出可截獲的異常,其他瀏覽器均如期運(yùn)行。

chrome錯(cuò)誤信息:

據(jù)了解,采用此類try catch方式做安全可行性判斷的并不只是個(gè)別現(xiàn)象,如DOJO

復(fù)制代碼 代碼如下:

try{
//see if we can access the iframe's location
//without a permission denied error
var iframeSearch = _getSegment(iframeLoc.href, "?");
//good, the iframe is same origin (no thrown exception)
if(document.title != docTitle){
//sync title of main window with title of iframe.
docTitle = this.iframe.document.title = document.title;
}
}catch(e){
//permission denied - server cannot be reached.
ifrOffline = true;
console.error("dojo.hash: Error adding history
entry. Server unreachable.");
}

再如FCKeditor
復(fù)制代碼 代碼如下:

try{
if ( (/fcksource=true/i).test( window.top.location.search ) )
sFile = 'fckeditor.original.html' ;
}
catch (e) { /* Ignore it. Much probably we are insi
de a FRAME where the "top" is in another domain (security error). */ }

還有很多網(wǎng)友的反饋:chrome bug report

以上代碼在chrome,safari,opera均不適用。翻了一些資料,記錄在此:
1.html5 security location
2.webkit dev lists
從webkit開發(fā)人員的討論消息中看到,他們承認(rèn)這個(gè)問題但并不情愿去改正,holly shit!

您可能感興趣的文章:

相關(guān)文章

  • JavaScript跨平臺(tái)的開源框架NativeScript

    JavaScript跨平臺(tái)的開源框架NativeScript

    本文給大家分享的是一款使用javascript來構(gòu)建跨平臺(tái)原生移動(dòng)應(yīng)用的開源框架--NativeScript,可以使用JavaScript開發(fā)跨平臺(tái)、真正原生的iOS, Android 和 Windows 移動(dòng)App。開發(fā)人員使用NativeScript提供的庫來構(gòu)建應(yīng)用UI,其抽象了各種原生平臺(tái)之間的不同。
    2015-03-03
  • javascript設(shè)計(jì)模式 – 備忘錄模式原理與用法實(shí)例分析

    javascript設(shè)計(jì)模式 – 備忘錄模式原理與用法實(shí)例分析

    這篇文章主要介紹了javascript設(shè)計(jì)模式 – 備忘錄模式,結(jié)合實(shí)例形式分析了javascript備忘錄模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • Bootstrap的modal拖動(dòng)效果

    Bootstrap的modal拖動(dòng)效果

    本文通過實(shí)例代碼給大家介紹了bootstrap的modal拖動(dòng)效果,非常不錯(cuò),代碼簡單易懂,具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • JavaScript+CSS實(shí)現(xiàn)模態(tài)框效果

    JavaScript+CSS實(shí)現(xiàn)模態(tài)框效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript+CSS實(shí)現(xiàn)模態(tài)框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例

    js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例

    這篇文章主要介紹了js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 多個(gè)上傳文件用js驗(yàn)證文件的格式和大小的方法(推薦)

    多個(gè)上傳文件用js驗(yàn)證文件的格式和大小的方法(推薦)

    下面小編就為大家?guī)硪黄鄠€(gè)上傳文件用js驗(yàn)證文件的格式和大小的方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Bootstrap CSS布局之代碼

    Bootstrap CSS布局之代碼

    這篇文章主要介紹了Bootstrap CSS布局之代碼的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 一篇文章帶你從零快速上手Rollup

    一篇文章帶你從零快速上手Rollup

    這篇文章主要給大家介紹了如何通過一篇文章快速從零快速上手Rollup的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 前端開發(fā)基礎(chǔ)javaScript的六大作用

    前端開發(fā)基礎(chǔ)javaScript的六大作用

    這篇文章主要介紹了前端開發(fā)基礎(chǔ)javaScript的六大作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • JavaScript遍歷求解數(shù)獨(dú)問題的主要思路小結(jié)

    JavaScript遍歷求解數(shù)獨(dú)問題的主要思路小結(jié)

    數(shù)獨(dú)游戲非常流行,其規(guī)則就是1到9數(shù)字填入9*9宮格并要求每一行、每一列、每一個(gè)粗線(小型)宮內(nèi)的數(shù)字不重復(fù),對(duì)此我們來看一下JavaScript遍歷求解數(shù)獨(dú)問題的主要思路小結(jié)
    2016-06-06

最新評(píng)論