資源加載方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種資源加載方法和裝置。所述方法包括:解析頁面的文檔結(jié)構(gòu);創(chuàng)建文檔對象模型;確定文檔對象模型中的節(jié)點(diǎn);獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源;對所述資源的安全性進(jìn)行度量;以及如果確定所述資源是安全的,則在瀏覽器中加載所述資源。因此,在本發(fā)明中,可以有效地提供網(wǎng)絡(luò)應(yīng)用運(yùn)行時(shí)的信任度量,確保了運(yùn)行該網(wǎng)絡(luò)應(yīng)用的用戶客戶端執(zhí)行環(huán)境的安全。
【專利說明】資源加載方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,更具體地,本發(fā)明涉及一種資源加載方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)技術(shù)的發(fā)展,各種網(wǎng)絡(luò)應(yīng)用(Web App)在諸如筆記本計(jì)算機(jī)、平板電腦(PAD)、移動(dòng)電話、多媒體播放器、個(gè)人數(shù)字助理(PDA)之類的電子設(shè)備中的安裝和使用越發(fā)普及。
[0003]尤其是,由于超文本標(biāo)記語言(HTML)5標(biāo)準(zhǔn)相關(guān)技術(shù)的快速進(jìn)步,基于HTML5的網(wǎng)絡(luò)應(yīng)用很有可能在不遠(yuǎn)的將來逐漸取代原生應(yīng)用(Native App),而成為最主要的應(yīng)用程序形態(tài)。
[0004]然而,隨著HTML5網(wǎng)絡(luò)應(yīng)用不斷開發(fā)和使用,由于其特性而導(dǎo)致的缺點(diǎn)也逐漸顯現(xiàn)出來。具體地,HTML5應(yīng)用是一種解釋執(zhí)行的腳本程序,它在傳輸、加載和執(zhí)行的各個(gè)環(huán)節(jié)都容易被攻擊者篡改、替換,從而給用戶的客戶端執(zhí)行環(huán)境安全帶來巨大的挑戰(zhàn)。
[0005]針對HTML5網(wǎng)絡(luò)應(yīng)用這個(gè)安全問題,現(xiàn)有的第一解決方案提出針對域名的安全分級控制方法,其使得瀏覽器能夠根據(jù)用戶設(shè)定,有區(qū)別地加載不同的網(wǎng)頁,從而控制威脅的擴(kuò)散。
[0006]但是,此方案的缺點(diǎn)在于,它只能針對域名來進(jìn)行安全控制,因而無法有效地應(yīng)對腳本程序在加載和執(zhí)行過程中面臨的安全隱患。需要注意的是,當(dāng)前的網(wǎng)頁攻擊,很大一部分是因?yàn)榭尚耪军c(diǎn)被黑客侵占之后植入木馬而發(fā)起的,然而此方案對于這種攻擊無能為力。
[0007]此外,現(xiàn)有的第二解決方案提出一種獨(dú)立進(jìn)程沙箱模式,其中,可以通過沙箱來加載不安全的頁面資源,即將可疑網(wǎng)絡(luò)應(yīng)用對磁盤、注冊表等的訪問重定向到指定文件夾下,從而消除對系統(tǒng)的危害。
[0008]但是,此方案的缺點(diǎn)在于,它簡單地將所有的頁面控制都放置在沙箱中運(yùn)行,從而導(dǎo)致網(wǎng)絡(luò)應(yīng)用的功能受限,這與HTML5注重提升網(wǎng)絡(luò)應(yīng)用對于本地設(shè)備訪問能力的趨勢是相悖的。
[0009]因此,需要一種新型的資源加載方法和裝置來解決上述問題。
【發(fā)明內(nèi)容】
[0010]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的一個(gè)方面,提供了一種資源加載方法,所述方法包括:解析頁面的文檔結(jié)構(gòu);創(chuàng)建文檔對象模型;確定文檔對象模型中的節(jié)點(diǎn);獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源;對所述資源的安全性進(jìn)行度量;以及如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
[0011]此外,根據(jù)本發(fā)明的另一方面,提供了一種資源加載裝置,所述裝置包括:解析單元,用于解析頁面的文檔結(jié)構(gòu);創(chuàng)建單元,用于創(chuàng)建文檔對象模型;確定單元,用于確定文檔對象模型中的節(jié)點(diǎn);獲得單元,用于獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源;度量單元,用于對所述資源的安全性進(jìn)行度量;以及加載單元,用于如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
[0012]與現(xiàn)有技術(shù)相比,采用根據(jù)本發(fā)明的資源加載方法和資源加載裝置,可以當(dāng)在網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境(例如,瀏覽器)中呈現(xiàn)網(wǎng)絡(luò)應(yīng)用的頁面之前,對網(wǎng)絡(luò)應(yīng)用的頁面文檔結(jié)構(gòu)進(jìn)行解析,創(chuàng)建文檔對象模型(D0M),確定DOM中的各個(gè)節(jié)點(diǎn),并獲取與一個(gè)或多個(gè)節(jié)點(diǎn)對應(yīng)的網(wǎng)絡(luò)資源,對這些資源的安全性進(jìn)行度量,只有當(dāng)確定出所述資源是安全的時(shí),才在瀏覽器中加載所述資源,并最終向用戶顯示在瀏覽器中呈現(xiàn)的整個(gè)應(yīng)用頁面。因此,在本發(fā)明中,可以有效地提供網(wǎng)絡(luò)應(yīng)用運(yùn)行時(shí)的信任度量,確保了運(yùn)行該網(wǎng)絡(luò)應(yīng)用的用戶客戶端執(zhí)行環(huán)境的安全。
[0013]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0014]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0015]圖1圖示了根據(jù)本發(fā)明的資源加載方法。
[0016]圖2圖示了根據(jù)本發(fā)明的資源加載裝置。
[0017]圖3圖示了根據(jù)本發(fā)明實(shí)施例的資源加載方法。
[0018]圖4圖示了根據(jù)本發(fā)明實(shí)施例的資源加載裝置。
[0019]圖5圖示了根據(jù)本發(fā)明實(shí)施例的資源加載方法中的度量啟動(dòng)流程。
[0020]圖6圖示了根據(jù)本發(fā)明實(shí)施例的可信網(wǎng)絡(luò)應(yīng)用與非可信網(wǎng)絡(luò)應(yīng)用的加載示例。
【具體實(shí)施方式】
[0021]將參照附圖詳細(xì)描述根據(jù)本發(fā)明的各個(gè)實(shí)施例。這里,需要注意的是,在附圖中,將相同的附圖標(biāo)記賦予基本上具有相同或類似結(jié)構(gòu)和功能的組成部分,并且將省略關(guān)于它們的重復(fù)描述。
[0022]在下文中,將參考圖1和圖2來描述根據(jù)本發(fā)明的資源加載方法和資源加載裝置。
[0023]圖1圖示了根據(jù)本發(fā)明的資源加載方法,而圖2圖示了根據(jù)本發(fā)明的資源加載裝置。
[0024]圖1所圖示的資源加載方法通過圖2所圖示的資源加載裝置100來實(shí)現(xiàn)。具體地,所述資源加載裝置100包括:解析單元110、創(chuàng)建單元120、確定單元130、獲得單元140、度量單元150、和加載單元160。
[0025]如圖1所示,所述資源加載方法包括:
[0026]在步驟SllO中,解析頁面的文檔結(jié)構(gòu);
[0027]在步驟S120中,創(chuàng)建文檔對象模型;
[0028]在步驟S130中,確定文檔對象模型中的節(jié)點(diǎn);
[0029]在步驟S140中,獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源;
[0030]在步驟S150中,對所述資源的安全性進(jìn)行度量;以及[0031]在步驟S160中,如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
[0032]由此可見,采用根據(jù)本發(fā)明的資源加載方法和資源加載裝置,可以當(dāng)在網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境(例如,瀏覽器)中呈現(xiàn)網(wǎng)絡(luò)應(yīng)用的頁面之前,對網(wǎng)絡(luò)應(yīng)用的頁面文檔結(jié)構(gòu)進(jìn)行解析,創(chuàng)建文檔對象模型(D0M),確定DOM中的各個(gè)節(jié)點(diǎn),并獲取與一個(gè)或多個(gè)節(jié)點(diǎn)對應(yīng)的網(wǎng)絡(luò)資源,對這些資源的安全性進(jìn)行度量,只有當(dāng)確定出所述資源是安全的時(shí),才在瀏覽器中加載所述資源,并最終向用戶顯示在瀏覽器中呈現(xiàn)的整個(gè)應(yīng)用頁面。因此,在本發(fā)明中,可以有效地提供網(wǎng)絡(luò)應(yīng)用運(yùn)行時(shí)的信任度量,確保了運(yùn)行該網(wǎng)絡(luò)應(yīng)用的用戶客戶端執(zhí)行環(huán)境的安全。
[0033]在下文中,將參考圖3和圖4來描述根據(jù)本發(fā)明實(shí)施例的資源加載方法和資源加
載裝置。
[0034]圖3圖示了根據(jù)本發(fā)明實(shí)施例的資源加載方法,而圖4圖示了根據(jù)本發(fā)明實(shí)施例的資源加載裝置100。
[0035]圖3所圖示的資源加載方法可以通過圖4所圖示的資源加載裝置100來實(shí)現(xiàn)。如圖4所圖示的,與圖2中一樣地,該資源加載裝置100包括:解析單元110、創(chuàng)建單元120、確定單元130、獲得單元140、度量單元150、和加載單元160。此外,優(yōu)選地,該資源加載裝置100還可以包括:啟動(dòng)單元170。
[0036]該資源加載裝置100可以應(yīng)用于一個(gè)或多個(gè)電子設(shè)備,在所述電子設(shè)備中安裝有至少一個(gè)操作系統(tǒng),并且在該操作系統(tǒng)中安裝有至少一個(gè)網(wǎng)絡(luò)應(yīng)用。該資源加載裝置100使得所述電子設(shè)備在運(yùn)行該網(wǎng)絡(luò)應(yīng)用之前,能夠?qū)τ诰W(wǎng)絡(luò)應(yīng)用的安全性進(jìn)行度量,以降低不可信網(wǎng)絡(luò)應(yīng)用對于系統(tǒng)安全性造成危害的可能性。
[0037]在第一示例中,該電子設(shè)備可以是移動(dòng)電話,在該移動(dòng)電話中可以安裝有谷歌(Google)公司的安卓(Android)操作系統(tǒng),并且該網(wǎng)絡(luò)應(yīng)用可以是在Android操作系統(tǒng)中安裝的網(wǎng)絡(luò)應(yīng)用,例如網(wǎng)絡(luò)游戲應(yīng)用。
[0038]在第二示例中,該電子設(shè)備可以是個(gè)人計(jì)算機(jī),在該個(gè)人計(jì)算機(jī)中可以安裝有微軟(Microsoft)公司的視窗(Windows)操作系統(tǒng),并且該網(wǎng)絡(luò)應(yīng)用可以是在Windows操作系統(tǒng)中安裝的網(wǎng)絡(luò)應(yīng)用,例如安全桌面應(yīng)用。
[0039]在第三示例中,該電子設(shè)備可以是平板電腦,在該平板電腦中可以安裝有蘋果(Apple)公司的iOS操作系統(tǒng),并且該網(wǎng)絡(luò)應(yīng)用可以是在iOS操作系統(tǒng)中安裝的網(wǎng)絡(luò)應(yīng)用,例如蘋果應(yīng)用商店(Apple Store)ο
[0040]此外,該資源加載裝置100可以通過任何方式與該電子設(shè)備進(jìn)行通信。
[0041]在一個(gè)示例中,該資源加載裝置100可以作為一個(gè)軟件模塊和/或硬件裝置而集成到該電子設(shè)備中,換言之,該電子設(shè)備可以包括該資源加載裝置100。例如,當(dāng)電子設(shè)備是移動(dòng)電話時(shí),該資源加載裝置100可以是該移動(dòng)電話的操作系統(tǒng)中的一個(gè)軟件模塊,或者可以是針對于該移動(dòng)電話所開發(fā)的一個(gè)應(yīng)用程序;當(dāng)然,該資源加載裝置100同樣可以是該移動(dòng)電話的眾多硬件裝置之一。
[0042]替換地,在另一示例中,該資源加載裝置100與該電子設(shè)備也可以是分離的設(shè)備,并且該資源加載裝置100可以通過有線和/或無線網(wǎng)絡(luò)連接到該電子設(shè)備,并且按照約定的數(shù)據(jù)格式來傳輸控制信息。
[0043]下面,將在以下場景中具體地說明本發(fā)明的實(shí)施例,其中該電子設(shè)備是使用Windows操作系統(tǒng)的個(gè)人計(jì)算機(jī),該網(wǎng)絡(luò)應(yīng)用是在該個(gè)人計(jì)算機(jī)中安裝的基于HTML5的網(wǎng)絡(luò)應(yīng)用,并且將該資源加載方法應(yīng)用于使得該個(gè)人計(jì)算機(jī)中的運(yùn)行環(huán)境(例如,瀏覽器)能夠安全地加載該HTML5網(wǎng)絡(luò)應(yīng)用。
[0044]然而,需要說明的是,本發(fā)明不限于此。該電子設(shè)備可以是任何類型的電子設(shè)備,其包括但不限于:筆記本計(jì)算機(jī)、平板電腦、移動(dòng)電話、多媒體播放器、個(gè)人數(shù)字助理等。該操作系統(tǒng)也可以是任何類型的操作系統(tǒng),其包括但不限于:Android、Windows、iOS、Linux、視窗電話(WP)等。同理,除了在電子設(shè)備的操作系統(tǒng)平臺中安裝的HTML5網(wǎng)絡(luò)應(yīng)用之外,該網(wǎng)絡(luò)應(yīng)用也可以是其他任何類型的網(wǎng)絡(luò)應(yīng)用。此外,還可以將根據(jù)本發(fā)明實(shí)施例的資源加載方法應(yīng)用于與電子設(shè)備的其他交互處理中。
[0045]如圖3所圖示的,根據(jù)本發(fā)明實(shí)施例的資源加載方法包括:
[0046]在步驟S210中,解析頁面的文檔結(jié)構(gòu)。
[0047]為了使得能夠在電子設(shè)備(例如,使用Windows操作系統(tǒng)的個(gè)人計(jì)算機(jī))的瀏覽器中安全地加載網(wǎng)絡(luò)應(yīng)用(例如,基于HTML5的網(wǎng)絡(luò)應(yīng)用),需要執(zhí)行根據(jù)本發(fā)明實(shí)施例的資源加載方法中的度量啟動(dòng)流程,以便依次對于電子設(shè)備的系統(tǒng)模塊、用于加載該網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境(EE)、以及該網(wǎng)絡(luò)應(yīng)用自身的安全性進(jìn)行驗(yàn)證。
[0048]圖5圖示了根據(jù)本發(fā)明實(shí)施例的資源加載方法中的度量啟動(dòng)流程。
[0049]如圖5所圖示的,在該度量啟動(dòng)流程中,將網(wǎng)絡(luò)應(yīng)用作為信任鏈的一端,而另一端是受信任的系統(tǒng)模塊(例如,系統(tǒng)硬件和/或系統(tǒng)軟件)作為信任根(trusted root)0因此,為了確保網(wǎng)絡(luò)應(yīng)用的安全性,優(yōu)選地可以首先確保電子設(shè)備的系統(tǒng)模塊的安全性。
[0050]需要說明的是,盡管在下文中將確保電子設(shè)備的系統(tǒng)模塊和運(yùn)行環(huán)境的安全性作為度量啟動(dòng)流程的一部分來說明根據(jù)本發(fā)明實(shí)施例的資源加載方法,但是,本發(fā)明不限于此。例如,根據(jù)客戶需求,可以僅僅驗(yàn)證網(wǎng)絡(luò)應(yīng)用自身的安全性。
[0051]例如,首先,可以基于可信任平臺模塊(TPM)技術(shù)來以安全方式啟動(dòng)該電子設(shè)備。
[0052]具體地,可以在個(gè)人計(jì)算機(jī)中裝備有TPM安全芯片(即,符合TPM標(biāo)準(zhǔn)的安全芯片),以便有效地保護(hù)該個(gè)人計(jì)算機(jī)、防止非法用戶訪問。該TPM安全芯片可以存儲、管理基本輸入輸出系統(tǒng)(BIOS)開機(jī)密碼以及硬盤密碼,可以進(jìn)行范圍較廣的加密,還可以加密硬盤的任意分區(qū)。
[0053]這樣,當(dāng)用戶啟動(dòng)該電子設(shè)備之后,該TPM安全芯片可以在電子設(shè)備的中央處理單元加載各個(gè)系統(tǒng)模塊之前,對這些系統(tǒng)模塊進(jìn)行驗(yàn)證。例如,在用戶例如通過按壓電子設(shè)備的開機(jī)按鈕而執(zhí)行開機(jī)操作之后,該TPM安全芯片可以依次地對BIOS和操作系統(tǒng)(OS)、以及所涉及的其他軟硬件模塊進(jìn)行安全性度量。
[0054]在確保了電子設(shè)備的系統(tǒng)硬件和系統(tǒng)軟件的安全性之后,在該度量啟動(dòng)流程中,然后可以進(jìn)一步確保在OS中安裝的用于運(yùn)行網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境(EE)的安全性。例如,仍然可以基于可信任平臺模塊(TPM)技術(shù)來以安全方式啟動(dòng)該運(yùn)行環(huán)境。
[0055]運(yùn)行環(huán)境可以是瀏覽器或者是具有瀏覽器引擎(或稱之為網(wǎng)頁解析機(jī)制)的其他應(yīng)用程序,該瀏覽器引擎負(fù)責(zé)對網(wǎng)頁語法的解釋(如HTML、JavaScript)并渲染網(wǎng)頁頁面。在本示例中,該瀏覽器內(nèi)核層可以至少包括WebKit組件和WebView組件,其中,WebKit組件是瀏覽器的核心模塊,其可以被稱為渲染器,并通常包括WebCore排版引擎和JavaScriptCore引擎;而WebView組件是用于封裝WebKit組件的層。[0056]例如,在對系統(tǒng)模塊和運(yùn)行環(huán)境進(jìn)行安全驗(yàn)證的上述過程中,可以以文件(file)為粒度來進(jìn)行度量其安全性。例如,對于每個(gè)系統(tǒng)模塊和運(yùn)行環(huán)境,該TPM安全芯片可以讀取其文件中的完整二進(jìn)制代碼,并掃描整個(gè)文件的完整性和可信任性。只有在度量通過之后,才啟動(dòng)相應(yīng)的對象,否則將向用戶提示安全性度量失敗,并且不再執(zhí)行啟動(dòng)操作。
[0057]如圖5所圖示的,在確保了網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境的安全啟動(dòng)之后,為了能夠在其中進(jìn)一步以安全方式加載HTML5網(wǎng)絡(luò)應(yīng)用,在根據(jù)本發(fā)明實(shí)施例的資源加載方法中,在運(yùn)行環(huán)境運(yùn)行每個(gè)網(wǎng)絡(luò)應(yīng)用時(shí),對它們進(jìn)行信任度量。上述網(wǎng)絡(luò)應(yīng)用可以包括本地(local)網(wǎng)絡(luò)應(yīng)用和遠(yuǎn)程(remote)網(wǎng)絡(luò)應(yīng)用。本地網(wǎng)絡(luò)應(yīng)用是指直接在電子設(shè)備本機(jī)中安裝的網(wǎng)絡(luò)應(yīng)用;而遠(yuǎn)程網(wǎng)絡(luò)應(yīng)用是指存儲在云端(服務(wù)器端)并且在運(yùn)行時(shí)通過網(wǎng)絡(luò)而加載到電子設(shè)備本機(jī)的網(wǎng)絡(luò)應(yīng)用。
[0058]由于網(wǎng)絡(luò)應(yīng)用是以資源為單位進(jìn)行加載的特性,所以在對它進(jìn)行信任度量時(shí),優(yōu)選地可以以小于文件(file)的粒度來進(jìn)行度量其安全性。例如,可以以一個(gè)或多個(gè)資源的粒度來執(zhí)行信任度量。以WebKit組件為例,可以在WebCore排版引擎和JavaScriptCore引擎加載HTML5App前,對App的每一項(xiàng)資源(主要包括HTML內(nèi)容、級聯(lián)樣式表(css)、腳本(Script)、插件(Plugin)等)進(jìn)行信任度量。
[0059]也就是說,在根據(jù)本發(fā)明實(shí)施例的資源加載方法中,對于網(wǎng)絡(luò)應(yīng)用,可以首先讀取其頁面中的一部分資源,并掃描該部分資源的完整性和可信任性,在確認(rèn)其安全性之后,再讀取下一部分資源,執(zhí)行信任度量,并如此循環(huán)往復(fù)。
[0060]例如,當(dāng)電子設(shè)備在瀏覽器中加載HTML5網(wǎng)絡(luò)應(yīng)用之前,可以首先解析網(wǎng)絡(luò)應(yīng)用頁面的文檔結(jié)構(gòu)。
[0061]具體地,在資源加載裝置100中,解析單元110從該HTML5網(wǎng)絡(luò)應(yīng)用中獲取當(dāng)前要加載頁面的統(tǒng)一資源定位符(URL),并且根據(jù)該URL來解析該頁面的文檔結(jié)構(gòu)。
[0062]在步驟S220中,創(chuàng)建文檔對象模型。
[0063]在解析單元110解析頁面的文檔結(jié)構(gòu)之后,創(chuàng)建單元120用于創(chuàng)建文檔對象模型(DOM)0
[0064]DOM實(shí)際上是以面向?qū)ο蠓绞矫枋龅奈臋n模型。它定義了表示和修改文檔所需的對象、這些對象的行為和屬性、以及這些對象之間的關(guān)系??梢詫OM認(rèn)為是頁面上數(shù)據(jù)和結(jié)構(gòu)的一個(gè)樹形表示。也就是說,HTML文檔中的所有節(jié)點(diǎn)組成了一個(gè)文檔樹(或節(jié)點(diǎn)樹)。HTML文檔中的每個(gè)元素、屬性、文本等都代表著樹中的一個(gè)節(jié)點(diǎn)。樹起始于文檔節(jié)點(diǎn),并由此繼續(xù)伸出枝條,直到處于這棵樹最低級別的所有文本節(jié)點(diǎn)為止。
[0065]具體地,創(chuàng)建單元120可以根據(jù)解析單元110所將解析的文檔結(jié)構(gòu)來生成通過節(jié)點(diǎn)表示的文檔對象模型D0M。
[0066]在步驟S230中,確定文檔對象模型中的節(jié)點(diǎn)。
[0067]在創(chuàng)建單元?jiǎng)?chuàng)建文檔對象模型之后,確定單元130用于確定文檔對象模型中的節(jié)點(diǎn)。
[0068]具體地,該確定單元130可以將整個(gè)文檔頁面(page)確定為一個(gè)文檔節(jié)點(diǎn)(根節(jié)點(diǎn)),并且將每個(gè)HTML標(biāo)簽確定為一個(gè)元素節(jié)點(diǎn)(葉節(jié)點(diǎn))。例如,如果該網(wǎng)絡(luò)應(yīng)用的頁面包括多幀(frame)結(jié)構(gòu)時(shí),該確定單元130可以將每一幀作為文檔頁面的葉節(jié)點(diǎn)。然后,該確定單元130可以將每一幀中的HTML、CSS、JavaScript標(biāo)簽作為相應(yīng)幀之下的更低層子元素節(jié)點(diǎn)。
[0069]在步驟S240中,獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
[0070]在確定單元130確定文檔對象模型中的節(jié)點(diǎn)之后,該獲得單元140用于獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
[0071]例如,當(dāng)該網(wǎng)絡(luò)應(yīng)用是在電子設(shè)備本機(jī)中安裝的本地網(wǎng)絡(luò)應(yīng)用時(shí),該獲得單元140通過相應(yīng)的URL本機(jī)地址從電子設(shè)備的存儲器中獲得與確定單元130所確定的每一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
[0072]又如,當(dāng)該網(wǎng)絡(luò)應(yīng)用是存儲在云端的遠(yuǎn)程網(wǎng)絡(luò)應(yīng)用時(shí),該獲得單元140通過相應(yīng)的URL云端地址,經(jīng)由網(wǎng)絡(luò)從云端服務(wù)器中獲得與確定單元130所確定的每一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
[0073]在步驟S250中,對所述資源的安全性進(jìn)行度量。
[0074]在獲得單元140獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源之后,度量單元150用于對所述資源的安全性進(jìn)行度量。如果度量單元150確定所述資源是安全的,則根據(jù)本發(fā)明實(shí)施例的資源加載方法前進(jìn)到步驟S260 ;而如果所述資源是不安全的,則根據(jù)本發(fā)明實(shí)施例的資源加載方法前進(jìn)到步驟S270。
[0075]例如,該度量單元150可以通過以下手段中的至少一種手段來執(zhí)行所述對所述資源的安全性進(jìn)行度量的步驟:數(shù)字簽名、哈希運(yùn)算、黑名單與白名單、和密碼。
[0076]又如,該度量單元150也可以通過TPM技術(shù)來對獲得單元140獲得的與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源(即,頁面中的一部分資源)進(jìn)行信任度量。
[0077]進(jìn)一步地,該度量單元150還可以在生命周期評價(jià)(LCA)認(rèn)證機(jī)制和安全套接層上的超文本傳送協(xié)議(HTTPS)的安全機(jī)制基礎(chǔ)上進(jìn)行擴(kuò)展,以保證所述資源的完整性和可信任性。
[0078]此外,優(yōu)選地,考慮到用戶可能并不關(guān)心某些類型資源的安全性,所以該度量單元150還可以首先判斷獲得單元140獲得的資源是否屬于預(yù)定類型,如果是,則不對所述資源的安全性進(jìn)行度量;否則,對所述資源的安全性進(jìn)行度量。
[0079]例如,當(dāng)該度量單元150判斷出獲得單元140獲得的資源屬于多媒體類型(例如,圖像、視頻、音頻)的資源時(shí),由于通常來說,這種資源即使被篡改或替換也不會對網(wǎng)絡(luò)應(yīng)用的安全性造成太大影響,所以該度量單元150可以對它直接跳過安全度量的過程,以減少網(wǎng)絡(luò)應(yīng)用的加載時(shí)間,節(jié)約系統(tǒng)功耗。
[0080]然而,相反地,當(dāng)多媒體類型的資源是至關(guān)緊要的時(shí),例如當(dāng)通過圖像文件來作為驗(yàn)證碼或密碼提示時(shí),該度量單元150優(yōu)選地可以根據(jù)用戶的設(shè)置而對這種類型的資源進(jìn)行驗(yàn)證。
[0081]另外,考慮到用戶可能并不關(guān)心某些區(qū)域中資源的安全性,所以優(yōu)選地,該度量單元150還可以首先判斷確定單元130確定的節(jié)點(diǎn)是否處于所述頁面中的特定區(qū)域,如果是,則不對所述資源的安全性進(jìn)行度量;否則,對所述資源的安全性進(jìn)行度量。
[0082]例如,當(dāng)該度量單元150判斷出確定單元130確定的節(jié)點(diǎn)是否處于所述頁面中的頂部區(qū)域時(shí),由于這個(gè)區(qū)域通常僅僅包括網(wǎng)站導(dǎo)航或廣告之類的HTML元素,即使被篡改或替換也不會對網(wǎng)絡(luò)應(yīng)用的安全性造成太大影響,所以該度量單元150可以對它直接跳過安全度量的過程,以減少網(wǎng)絡(luò)應(yīng)用的安全度量時(shí)間,加快頁面加載速度。當(dāng)然,同樣地,該度量單元150也可以根據(jù)用戶的設(shè)置而對與這個(gè)區(qū)域的節(jié)點(diǎn)對應(yīng)的資源進(jìn)行安全驗(yàn)證。
[0083]在步驟S260中,如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
[0084]在度量單元150對所述資源的安全性進(jìn)行度量之后,如果確定出所述資源是安全的,則加載單元160在運(yùn)行環(huán)境中加載所述資源,以便向用戶呈現(xiàn)網(wǎng)絡(luò)應(yīng)用的頁面。
[0085]在一個(gè)示例中,該加載單元160可以在網(wǎng)絡(luò)應(yīng)用頁面中的所有資源都通過度量單元150的安全性度量之后,才在瀏覽器中加載整個(gè)頁面的所有資源。
[0086]這時(shí),在度量單元150如上所述地確定出一部分資源的安全性之后,所述加載單元160可以進(jìn)一步判斷度量單元150是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量,并且如果是,則在瀏覽器中同時(shí)加載所述所有資源之中安全的資源。否則,該加載單元160先不執(zhí)行加載操作,直到度量單元150完成全部資源的安全性度量為止。
[0087]在另一示例中,該加載單元160可以在網(wǎng)絡(luò)應(yīng)用頁面中的一部分資源通過度量單元150的安全性度量之后,首先在瀏覽器中加載該部分資源,并且可以另一部分資源通過該安全性度量之后,繼續(xù)在瀏覽器中加載該另一部分資源,如此類推,直到在瀏覽器中加載整個(gè)頁面的所有資源為止。
[0088]這時(shí),在度量單元150如上所述地確定出一部分資源的安全性之后,所述加載單元160可以首先在瀏覽器中加載該部分的資源,并且判斷度量單元150是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量,并且如果不是,則通知獲得單元140繼續(xù)獲得與剩余節(jié)點(diǎn)中的至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源,并由度量單元150執(zhí)行安全性驗(yàn)證。進(jìn)而,加載單元160在瀏覽器中繼續(xù)加載該部分的資源并執(zhí)行上述判斷,直到在瀏覽器中加載整個(gè)頁面的所有資源為止。
[0089]在步驟S270中,如果確定所述資源是不安全的,則通過虛擬執(zhí)行環(huán)境來在瀏覽器中加載所述資源。
[0090]在度量單元150對所述資源的安全性進(jìn)行度量之后,如果確定出所述資源是不安全的,則在一個(gè)簡單示例中,所述加載單元160可以不在運(yùn)行環(huán)境中加載所述資源。這時(shí),加載單元160可以使得在該網(wǎng)絡(luò)應(yīng)用的頁面中與該資源對應(yīng)的部分區(qū)域是空白的,或者呈現(xiàn)出其他提示信息(例如,紅叉或者諸如“此部分資源不安全”之類的文字說明)。
[0091]優(yōu)選地,該加載單元160可以在該未加載資源的區(qū)域中進(jìn)一步提供加載提示按鈕,以便用戶可以根據(jù)自己的需求來強(qiáng)行加載不安全的資源。
[0092]另外,在度量單元150對所述資源的安全性進(jìn)行度量之后,如果確定出所述資源是不安全的,為了更好地改善用戶體驗(yàn),可以根據(jù)用戶的需求在虛擬執(zhí)行環(huán)境中加載所述資源,該虛擬執(zhí)行環(huán)境是一種按照安全策略限制程序行為的執(zhí)行環(huán)境,例如沙箱。
[0093]這時(shí),在資源加載裝置100中可以進(jìn)一步包括一個(gè)啟動(dòng)單元170。在度量單元150確定出資源是不安全的情況下,則它通知該啟動(dòng)單元170啟動(dòng)虛擬執(zhí)行環(huán)境。然后,該啟動(dòng)單元170通知所述加載單元160通過所述虛擬執(zhí)行環(huán)境來在瀏覽器中加載所述資源。
[0094]這樣,不安全資源通過瀏覽器對于電子設(shè)備所作的任何讀寫磁盤操作,都將重定向到一個(gè)特定的臨時(shí)文件夾中,從而避免對用戶的電子設(shè)備造成安全危害。
[0095]下面,將參考圖6來描述根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)應(yīng)用加載示例。
[0096]圖6圖示了根據(jù)本發(fā)明實(shí)施例的可信網(wǎng)絡(luò)應(yīng)用與非可信網(wǎng)絡(luò)應(yīng)用的加載示例。[0097]如圖6所圖示的,當(dāng)根據(jù)本發(fā)明實(shí)施例的資源加載裝置100判斷出某一個(gè)網(wǎng)絡(luò)應(yīng)用是可信網(wǎng)絡(luò)應(yīng)用時(shí),該資源加載裝置100使得在瀏覽器中加載該可信網(wǎng)絡(luò)應(yīng)用,并且允許它對于電子設(shè)備中的本地文件、系統(tǒng)設(shè)置、系統(tǒng)設(shè)備、信息記錄程序(cookies)進(jìn)行讀寫操作。
[0098]然而,當(dāng)該網(wǎng)絡(luò)應(yīng)用是非可信網(wǎng)絡(luò)應(yīng)用時(shí),該資源加載裝置100可以拒絕該網(wǎng)絡(luò)應(yīng)用在瀏覽器中的加載。替換地,該資源加載裝置100使得在瀏覽器中通過包括沙箱的HTML5運(yùn)行環(huán)境(H5EE)主進(jìn)程來加載該非可信網(wǎng)絡(luò)應(yīng)用,并且將它對于電子設(shè)備中的本地文件、系統(tǒng)設(shè)置、系統(tǒng)設(shè)備、信息記錄程序(cookies)的讀寫操作重定向到一個(gè)特定的臨時(shí)文件夾中。這樣,即使在該網(wǎng)絡(luò)應(yīng)用的頁面中包含病毒,木馬,廣告等惡意程序,被強(qiáng)行安裝后,也只是安裝到了臨時(shí)文件夾中,不會對用戶的電子設(shè)備造成任何危害。
[0099]由此可見,采用根據(jù)本發(fā)明實(shí)施例的資源加載方法和資源加載裝置,可以當(dāng)在網(wǎng)絡(luò)應(yīng)用的運(yùn)行環(huán)境(例如,瀏覽器)中呈現(xiàn)網(wǎng)絡(luò)應(yīng)用的頁面之前,對網(wǎng)絡(luò)應(yīng)用的頁面文檔結(jié)構(gòu)進(jìn)行解析,創(chuàng)建文檔對象模型(D0M),確定DOM中的各個(gè)節(jié)點(diǎn),并獲取與一個(gè)或多個(gè)節(jié)點(diǎn)對應(yīng)的網(wǎng)絡(luò)資源,對這些資源的安全性進(jìn)行度量,只有當(dāng)確定出所述資源是安全的時(shí),才在瀏覽器中加載所述資源,而當(dāng)確定出所述資源是不安全的時(shí),可以在瀏覽器中選擇不加載、有限制地或者強(qiáng)制完全地加載所述資源,并最終向用戶顯示在瀏覽器中呈現(xiàn)的整個(gè)應(yīng)用頁面。因此,在本發(fā)明的實(shí)施例中,可以支持網(wǎng)絡(luò)應(yīng)用運(yùn)行時(shí)的信任度量,確保了程序的安全。另外,還可以在本發(fā)明的實(shí)施例中靈活地結(jié)合沙箱技術(shù),從而一方面確??尚啪W(wǎng)絡(luò)應(yīng)用的有效權(quán)限,另一方面仍可限制非可信的網(wǎng)絡(luò)應(yīng)用在沙箱中運(yùn)行,減低對系統(tǒng)的危害。
[0100]需要說明的是,盡管在上文中通過以一個(gè)或多個(gè)資源的粒度來執(zhí)行信任度量為例說明了根據(jù)本發(fā)明實(shí)施例的資源加載方法和資源加載裝置,但是本發(fā)明不限于此。在加載資源時(shí),還可以通過一些策略來優(yōu)化度量。例如,可以在等待與網(wǎng)絡(luò)應(yīng)用整個(gè)頁面對應(yīng)的所有資源被讀取之后,統(tǒng)一地執(zhí)行安全性度量,然后對所有資源進(jìn)行執(zhí)行加載和向用戶反饋。
[0101]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助于軟件加必需的硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過軟件、或硬件來實(shí)施。基于這樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁盤、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0102]在上面詳細(xì)描述了本發(fā)明的各個(gè)實(shí)施例。然而,本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的原理和精神的情況下,可對這些實(shí)施例進(jìn)行各種修改,組合或子組合,并且這樣的修改應(yīng)落入本發(fā)明的范圍內(nèi)。
【權(quán)利要求】
1.一種資源加載方法,其特征在于,所述方法包括: 解析頁面的文檔結(jié)構(gòu); 創(chuàng)建文檔對象模型; 確定文檔對象模型中的節(jié)點(diǎn); 獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源; 對所述資源的安全性進(jìn)行度量;以及 如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述對所述資源的安全性進(jìn)行度量的步驟還包括: 判斷所述資源是否屬于預(yù)定類型; 如果是,則不對所述資源的安全性進(jìn)行度量;以及 否則,對所述資源的安全性進(jìn)行度量。
3.根據(jù)權(quán)利要求1的方法,其特征在于,所述對所述資源的安全性進(jìn)行度量的步驟還包括: 判斷所述節(jié)點(diǎn)是否處于所述頁面中的特定區(qū)域; 如果是,則不對所述資源的安全性進(jìn)行度量;以及 否則,對所述資源的安全性進(jìn)行度量。
4.根據(jù)權(quán)利要求1的方法,其特征在于,所述方法還包括: 如果所述資源是不安全的,則不在瀏覽器中加載所述資源。
5.根據(jù)權(quán)利要求1的方法,其特征在于,所述方法還包括: 如果所述資源是不安全的,則啟動(dòng)虛擬執(zhí)行環(huán)境;以及 通過所述虛擬執(zhí)行環(huán)境來在瀏覽器中加載所述資源。
6.根據(jù)權(quán)利要求5的方法,其特征在于,所述虛擬執(zhí)行環(huán)境是沙箱。
7.根據(jù)權(quán)利要求1的方法,其特征在于,所述如果確定所述資源是安全的、則在瀏覽器中加載所述資源的步驟包括: 判斷是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量;以及 如果是,則在瀏覽器中同時(shí)加載所述所有資源之中安全的資源。
8.根據(jù)權(quán)利要求1的方法,其特征在于,所述如果確定所述資源是安全的、則在瀏覽器中加載所述資源的步驟包括: 如果確定所述資源是安全的,則在瀏覽器中加載所述資源; 判斷是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量;以及 如果不是,則繼續(xù)獲得與剩余節(jié)點(diǎn)中的至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
9.根據(jù)權(quán)利要求1的方法,其特征在于,所述對所述資源的安全性進(jìn)行度量的步驟是通過以下手段中的至少一種手段來執(zhí)行的:數(shù)字簽名、哈希運(yùn)算、黑名單與白名單、和密碼。
10.根據(jù)權(quán)利要求1的方法,其特征在于,所述安全性包括完整性和可信任性。
11.一種資源加載裝置,其特征在于,所述裝置包括: 解析單元,用于解析頁面的文檔結(jié)構(gòu);創(chuàng)建單元,用于創(chuàng)建文檔對象模型; 確定單元,用于確定文檔對象模型中的節(jié)點(diǎn); 獲得單元,用于獲得與至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源; 度量單元,用于對所述資源的安全性進(jìn)行度量;以及 加載單元,用于如果確定所述資源是安全的,則在瀏覽器中加載所述資源。
12.根據(jù)權(quán)利要求11的裝置,其特征在于,所述度量單元還用于判斷所述資源是否屬于預(yù)定類型,如果是,則不對所述資源的安全性進(jìn)行度量;否則,對所述資源的安全性進(jìn)行度量。
13.根據(jù)權(quán)利要求11的裝置,其特征在于,所述度量單元還用于判斷所述節(jié)點(diǎn)是否處于所述頁面中的特定區(qū)域,如果是,則不對所述資源的安全性進(jìn)行度量;否則,對所述資源的安全性進(jìn)行度量。
14.根據(jù)權(quán)利要求11的裝置,其特征在于,如果所述資源是不安全的,則所述加載單元不在瀏覽器中加載所述資源。
15.根據(jù)權(quán)利要求11的裝置,其特征在于,所述裝置還包括: 啟動(dòng)單元,用于如果所述資源是不安全的,則啟動(dòng)虛擬執(zhí)行環(huán)境,并且 所述加載單元通過所述虛擬執(zhí)行環(huán)境來在瀏覽器中加載所述資源。
16.根據(jù)權(quán)利要求15的裝置,其特征在于,所述虛擬執(zhí)行環(huán)境是沙箱。
17.根據(jù)權(quán)利要求11的裝置,其特征在于,所述加載單元判斷是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量,并且如果是,則在瀏覽器中同時(shí)加載所述所有資源之中安全的資源。
18.根據(jù)權(quán)利要求11的裝置,其特征在于,如果確定所述資源是安全的,則所述加載單元在瀏覽器中加載所述資源,判斷是否已經(jīng)對與所述文檔對象模型中的所有節(jié)點(diǎn)分別對應(yīng)的所有資源的安全性進(jìn)行了度量,并且如果不是,則通知獲得單元繼續(xù)獲得與剩余節(jié)點(diǎn)中的至少一個(gè)節(jié)點(diǎn)對應(yīng)的資源。
19.根據(jù)權(quán)利要求11的裝置,其特征在于,所述對所述資源的安全性進(jìn)行度量的步驟是通過以下手段中的至少一種手段來執(zhí)行的:數(shù)字簽名、哈希運(yùn)算、黑名單與白名單、和密碼。
20.根據(jù)權(quán)利要求11的裝置,其特征在于,所述安全性包括完整性和可信任性。
21.一種電子設(shè) 備,其特征在于,所述電子設(shè)備包括:根據(jù)權(quán)利要求11到20中任一項(xiàng)的資源加載裝置。
【文檔編號】G06F21/53GK104008328SQ201310061911
【公開日】2014年8月27日 申請日期:2013年2月27日 優(yōu)先權(quán)日:2013年2月27日
【發(fā)明者】馮榮峰, 莫洪靈, 莊渭峰, 陳康 申請人:聯(lián)想(北京)有限公司