国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

隱秘的“腳本錯(cuò)誤”。在Chrome和Firefox中以Javascript報(bào)告

瀏覽:159日期:2024-04-16 18:50:25
如何解決隱秘的“腳本錯(cuò)誤”。在Chrome和Firefox中以Javascript報(bào)告?

“腳本錯(cuò)誤”。當(dāng)異常違反了瀏覽器的同源策略時(shí),即在錯(cuò)誤發(fā)生在Firefox,Safari和Chrome中時(shí),即當(dāng)錯(cuò)誤發(fā)生在托管于當(dāng)前頁面域之外的域中的腳本中時(shí)。

此行為是有意的,以防止腳本將信息泄漏到外部域。有關(guān)為何有此必要的示例,請(qǐng)想象一下意外訪問evilsite.com,其中包含的頁面<scriptsrc='yourbank.com/index.html'>。(是的,我們將腳本標(biāo)記指向html而不是JS)。這將導(dǎo)致腳本錯(cuò)誤,但是該錯(cuò)誤很有趣,因?yàn)樗梢愿嬖V我們是否已登錄。如果您已登錄,則錯(cuò)誤可能是’WelcomeFred...’ is undefined,而如果您未登錄,則可能是’Please Login ...’ is undefined。遵循這些原則。

如果evilsite.com是針對(duì)排名前20位的銀行機(jī)構(gòu)這樣做的,那么他們會(huì)非常了解您訪問的銀行站點(diǎn),并且可以提供更具針對(duì)性的網(wǎng)絡(luò)釣魚頁面。(當(dāng)然,這只是一個(gè)例子。但是它說明了為什么瀏覽器不應(yīng)允許任何 數(shù)據(jù)跨越域邊界。)

我已經(jīng)在Safari,Chrome和Firefox的最新版本中對(duì)此進(jìn)行了測(cè)試-他們都這樣做。IE9不會(huì)-它將x起源異常與同起源異常相同。(而且Opera不支持onerror。)

從馬口說起:在將異常傳遞給onerror()時(shí)檢查來源的WebKit源。并檢查Firefox源。

:跟蹤此問題的Firefox錯(cuò)誤包括指向啟發(fā)此行為的博客文章的鏈接。

:現(xiàn)在,您可以通過在腳本標(biāo)簽上指定crossorigin屬性,并讓服務(wù)器發(fā)送適當(dāng)?shù)腃ORS HTTP響應(yīng)標(biāo)頭,在某些瀏覽器上啟用完整的跨域錯(cuò)誤報(bào)告。

解決方法

我有一個(gè)腳本,該腳本可以在我的網(wǎng)站上檢測(cè)Javascript錯(cuò)誤并將其發(fā)送到我的后端進(jìn)行報(bào)告。它報(bào)告遇到的第一個(gè)錯(cuò)誤,假定的行號(hào)和時(shí)間。

編輯以包含doctype:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en' xmlns:fb='http://www.facebook.com/2008/fbml'>

<script type='text/javascript'>//<![CDATA[// for debugging javascript!(function(window){ window.onerror = function(msg,url,ln) {//transform errorsif (typeof(msg) === ’object’ && msg.srcElement && msg.target) { if(msg.srcElement == ’[object HTMLScriptElement]’ && msg.target == ’[object HTMLScriptElement]’){msg = ’Error loading script’; }else{msg = ’Event Error - target:’ + msg.target + ’ srcElement:’ + msg.srcElement; }}msg = msg.toString();//ignore errorsif(msg.indexOf('Location.toString') > -1){ return;}if(msg.indexOf('Error loading script') > -1){ return;}//report errorswindow.onerror = function(){};(new Image()).src = 'http://www.intensediesel.com/jserror.php?msg=' + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url || document.location.toString().replace(/#.*$/,'')) + '&ln=' + parseInt(ln || 0) + '&r=' + (+new Date()); };})(window);//]]></script>

由于有了這個(gè)腳本,我很清楚自己的網(wǎng)站上發(fā)生的任何JavaScript錯(cuò)誤。 最大的違規(guī)者之一是“腳本錯(cuò)誤”。 在Chrome10以上版本和Firefox 3以上版本中, 位于第0行 。此錯(cuò)誤在Internet Explorer中不存在(或可能稱為其他錯(cuò)誤?)。

更正(5/23/2013):現(xiàn)在,此“腳本錯(cuò)誤,第0行”錯(cuò)誤正在IE7和其他版本的IE中顯示??赡苁怯捎谧罱腎E安全修補(bǔ)程序引起的,因?yàn)橐郧皼]有此行為。

有誰知道這個(gè)錯(cuò)誤是什么意思或者是什么原因?qū)е碌??它發(fā)生在我的總頁面加載量的0.25%左右,占報(bào)告的錯(cuò)誤的一半。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 桃源县| 柳林县| 蛟河市| 双柏县| 体育| 黄大仙区| 石屏县| 金平| 恩平市| 乐业县| 娄烦县| 宁安市| 平凉市| 聂荣县| 重庆市| 景东| 寿宁县| 尖扎县| 冷水江市| 锡林浩特市| 绥中县| 石城县| 山阳县| 潜山县| 湘潭县| 朝阳县| 饶阳县| 文成县| 衢州市| 化州市| 彭州市| 桂平市| 闵行区| 西宁市| 潍坊市| 普洱| 林甸县| 钟山县| 澄江县| 白银市| 福安市|