精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Scripterror.全面解析-創新互聯

一些用戶向我們反饋,Fundebug的JavaScript監控插件抓到了很多Script error.,然后行號和列號都是0...這就很尷尬了。
Script error.全面解析
今天,我們來詳細地解析一下Script error.,后續我們還會深度測試并且提供解決方法。

開化網站建設公司創新互聯公司,開化網站設計制作,有大型網站制作公司豐富經驗。已為開化上千家提供企業網站建設服務。企業網站搭建\外貿網站制作要多少錢,請找那個售后服務好的開化做網站的公司定做!

同源策略 (Same origin policy)

解釋Script error.之前,我們先簡單聊聊同源策略。摘自MDN - Same-origin policy:

Two pages have the same origin if the protocol, port (if one is specified), and host are the same for both pages.

所謂同源,就是指兩個頁面具有相同的協議、端口和主機(域名)。通過第三方加載的JavaScript腳本是不同源的。下面的表格簡單列出了和https://fundebug.com/app.js是否同源的文件:Script error.全面解析

網址 是否同源 原因
https://fundebug.com/vendor.js
http://fundebug.com/vendor.js 協議不同
https://fundebug.com:8001/app.js 端口不同
https://docs.fundebug.com/nav.js 子域名不同
https://kiwenlau.com/totop.js 域名不同

沒有同源策略的話,將會怎樣?摘自同源策略詳解及繞過 - FreeBuf:

假設你已經成功登錄Gmail服務器,同時在同一個瀏覽器訪問惡意站點(另一個瀏覽器選項卡)。沒有同源策略,***者可以通過JavaScript獲取你的郵件以及其他敏感信息,比如說閱讀你的私密郵件,發送虛假郵件,看你的聊天記錄等等。 如果將Gmail替換為你的銀行帳戶,問題就大條了。

為啥出現Script error. ?

為了提升網站的訪問速度,我們通常都會將靜態資源文件(css, image, javascript)放在第三方CDN。當這些從第三方加載的JavaScript腳本執行出錯,因為違背了同源策略, 為了保證用戶信息不被泄露,錯誤信息不會顯示出來,取而代之只會返回一個Script error.

暴露錯誤信息會怎樣呢?摘自(Cryptic “Script Error.” reported in Javascript in Chrome and Firefox):

假想你不小心訪問了一個惡意網站,網頁里面偷偷放入了一段JavaScript腳本 <script src="cbcc.com/index.html">,這段腳本指向你使用的某銀行網站首頁。雖然腳本會執行失敗,但是錯誤信息卻有可能泄露你的信息。如果你已經登錄過該銀行網站并且處于登錄狀態,那么錯誤信息可能為'歡迎你 ....' is undefined;如果你沒有登錄,那么錯誤信息可能是'請登錄...' is undefined。 然后***就可以根據這些信息確定你使用的銀行網站,并且偽造一個釣魚網站來騙取錢財。

源碼

webkit源碼如下:

```c++
bool ScriptExecutionContext::dispatchErrorEvent(const String& errorMessage,
int lineNumber,
const String& sourceURL)
{
EventTarget* target = errorEventTarget();
if (!target)
return false;
...
if (securityOrigin()->canRequest(targetUrl)) {
message = errorMessage;
line = lineNumber;
sourceName = sourceURL;
} else {
message = "Script error.";
sourceName = String();
line = 0;
}
...
}

可知,瀏覽器會判斷所加載的資源url是否同源(`securityOrigin()->canRequest(targetUrl)`),如果不同源,則將錯誤消息隱藏,賦值為`Script error.`, 并且將行號設為0.

因此,如果我們從第三方CDN服務加載資源,如果出錯的話,那么我們將只能看到`Script error.`。

### 錯誤復現

我們用一個簡單的例子測試一下。下面是**index.html**,我們使用onerror來捕獲錯誤。

```html



    Test Script error
    
    



scripterror.js中拋出一個Error對象:

throw new Error('Hello, Fundebug');

使用的http-server掛載文件,打開http://localhost:8080/index.html,

在Chrome瀏覽器控制臺下,可以看到詳細的出錯信息:Script error.全面解析



為了復現Scrpt error., 將scripterror.js放到我在coding.net的個人項目下面:




    Test Script error
    
    



運行http-server, 結果如下:Script error.全面解析



因為違背同源策略,這時只能拿到Script error.

總結

本文介紹了Script error.的由來,并提供了一個簡單的實例來演示什么情況下出現Script error.。接下來,我們將對Script error進行深度測試并提出解決方法

關于Fundebug

Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了7億+錯誤事件,得到了Google、360、金山軟件、百姓網等眾多知名用戶的認可。歡迎免費試用!

Script error.全面解析

版權聲明

轉載時請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/04/05/understand-script-error/

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


新聞標題:Scripterror.全面解析-創新互聯
本文地址:http://m.jcarcd.cn/article/dseosj.html
主站蜘蛛池模板: 精品欧美А∨被黑人 | 国产真实破 | 国产精品第六页 | 国产伦理一区二区 | 福利小视频导航 | 国产在线观看h尤 | 国语精品91自产 | 国产在线91 | 国产精品伦理在线 | 91福利在线播放 | 国精品一二区 | 日本淫秽视频在线 | 九九九热在线精品免 | 另类老熟女hd | 日韩欧美一区二 | 国产剧情一区二区 | 亚洲无码在线免费视频 | 欧美日韩一卡二区 | 日韩激情视频网站 | 九九九性爱片 | 国产国产国产 | 国产免费资源 | 日韩xxx免费视频 | 国产精品素人福利 | 99热在线精品8 | 奇米视频在线观看 | 欧美日韩免费在线 | 国产手机在线精品 | 欧美一块操 | 欧美一级夜夜 | 九一果冻在线视频 | 国产在线视频一区 | 91免费在线观看 | 人人色在线视频播放 | 国产在线观看色窝网 | 国产黄大片在线视频 | 国产二三区 | 最新国产人妖ts视频 | 午夜免费看片 | 动漫精品无 | 九九视频免费在线观 |