一種代碼安全處理方法、裝置、終端設(shè)備及系統(tǒng)的制作方法
【專利摘要】本公開是關(guān)于一種代碼安全處理方法、裝置、終端設(shè)備及系統(tǒng)。該代碼安全處理方法,包括:獲取HTML5代碼中的JS代碼的簽名信息;將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。應(yīng)用本公開實施例的方案,能提高代碼本地加載或存儲的安全性。
【專利說明】
一種代碼安全處理方法、裝置、終端設(shè)備及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本公開涉及移動通信技術(shù)領(lǐng)域,尤其涉及一種代碼安全處理方法、裝置、終端設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002]目前,隨著在Android(安卓)設(shè)備中越來越多地使用Webview(網(wǎng)絡(luò)視圖),通過HTML5(Hyper Text Markup Language 5,第五版超級文本標(biāo)記語言)來實現(xiàn)之前NativeApp(本地應(yīng)用模式)無法實現(xiàn)的功能,如快速更新、實時上線等,使得用戶之間可以有更多的交互。其中,WebView能加載顯示網(wǎng)頁,可以將其視為一個瀏覽器,它是使用了 WebKit渲染引擎加載顯示網(wǎng)頁。
[0003]在實現(xiàn)HTML5過程中,經(jīng)常會用到JavaScript(簡稱JS)代碼。為了避免JS代碼的重復(fù)加載,浪費用戶流量,影響用戶體驗,一般經(jīng)常會將JS代碼緩存到安卓設(shè)備的本地緩存中。
[0004]但是,上述存儲處理方法存在風(fēng)險,可能會遭受XSS(Cross Site Scripting,跨站腳本)攻擊,本地代碼很可能會被篡改,而被篡改的代碼可能又會被進一步緩存,使得與代碼相關(guān)的應(yīng)用受到更大的影響,最終影響到Webview的使用。
【發(fā)明內(nèi)容】
[0005]本公開提供了一種代碼安全處理方法、裝置、終端設(shè)備及系統(tǒng),能提高代碼本地加載或存儲的安全性。
[0006]根據(jù)本公開實施例的第一方面,提供一種代碼安全處理方法,包括:
[0007]獲取HTML5代碼中的JS代碼的簽名信息;
[0008]將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;
[0009]在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0010]可選的,所述方法還包括:
[0011 ]在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。
[0012]可選的,所述獲取HTML5代碼中的JS代碼的簽名信息包括:
[0013]獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0014]可選的,所述獲取HTML5代碼中的JS代碼的簽名信息包括:
[0015]在訪問HTML5代碼時獲取HTML5代碼中的JS代碼的簽名信息。
[0016]可選的,所述將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比,包括:
[0017]獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;
[0018]根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0019]可選的,在簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0020]根據(jù)本公開實施例的第二方面,提供一種代碼安全處理裝置,包括:
[0021 ]獲取模塊,用于獲取HTML5代碼中的JS代碼的簽名信息;
[0022]校驗?zāi)K,用于將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述獲取模塊獲取的HTML5代碼中的JS代碼的簽名信息進行對比;
[0023]第一處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0024]可選的,所述裝置還包括:
[0025]第二處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。
[0026]可選的,所述獲取模塊是獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0027]可選的,所述校驗?zāi)K包括:
[0028]分級子模塊,用于獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;
[0029]執(zhí)行子模塊,用于根據(jù)所述分級子模塊的所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0030]可選的,所述裝置還包括:
[0031]第三處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0032]根據(jù)本公開實施例的第三方面,提供一種終端設(shè)備,包括:
[0033]處理器和用于存儲處理器可執(zhí)行指令的存儲器;
[0034]其中,所述處理器被配置為:
[0035]獲取HTML5代碼中的JS代碼的簽名信息;
[0036]將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;
[0037]在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0038]根據(jù)本公開實施例的第四方面,提供一種代碼安全處理系統(tǒng),包括:
[0039]客戶端,用于通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼中的JS代碼的簽名信息;將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼;
[0040]服務(wù)端,用于向所述客戶端傳輸JS代碼原文件。[0041 ]可選的,所述服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名得到簽名信息后預(yù)先設(shè)置在HTML5代碼中的HTML5標(biāo)簽,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0042]可選的,所述服務(wù)端在HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)驗證級別標(biāo)識;
[0043]所述客戶端通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0044]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:本公開通過在HTML5代碼中設(shè)置JS代碼的簽名信息,獲取其中的簽名信息,并與根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息進行對比,在簽名信息對比結(jié)果相同的情況下,才在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼,這樣就可以保證加載或存儲的JS代碼是沒有被纂改的,實現(xiàn)提高代碼本地加載或存儲的安全性。
[0045]本公開還可以在在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端,由服務(wù)端進行解決。
[0046]本公開可以由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名得到簽名信息后預(yù)先設(shè)置在HTML5標(biāo)簽中。
[0047]本公開還可以設(shè)置安全分級,由服務(wù)端在HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)驗證級別標(biāo)識,使得客戶端可根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段進行驗證處理。
[0048]本公開還可以在簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后再在客戶端本地進行加載和/或存儲處理。
[0049]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0050]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
[0051]圖1是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的流程圖。
[0052]圖2是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的另一流程圖。
[0053]圖3是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的另一流程圖。
[0054]圖4是本公開根據(jù)一示例性實施例示出的一種代碼安全處理裝置的框圖。
[0055]圖5是本公開根據(jù)一示例性實施例示出的一種代碼安全處理裝置的另一框圖。
[0056]圖6是本公開根據(jù)一示例性實施例示出的一種終端設(shè)備的一結(jié)構(gòu)框圖。
[0057]圖7是本公開根據(jù)一示例性實施例示出的一種設(shè)備的一結(jié)構(gòu)框圖。
[0058]圖8是本公開根據(jù)一示例性實施例示出的一種代碼安全處理系統(tǒng)的一結(jié)構(gòu)框圖。
【具體實施方式】
[0059]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0060]在本公開使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本公開。在本公開和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
[0061 ]應(yīng)當(dāng)理解,盡管在本公開可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本公開范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
[0062]本公開提供了一種代碼安全處理方法,能提高代碼本地加載或存儲的安全性。
[0063]圖1是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的流程圖。
[0064]該方法可以應(yīng)用于終端中,如圖1所示,該方法可以包括以下步驟:
[0065]在步驟101中,獲取HTML5代碼中的JS代碼的簽名信息。
[0066]該步驟可以是獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0067 ] 該步驟可以是在訪問HTML5代碼時獲取HTML5代碼中的JS代碼的簽名信息。
[0068]在步驟102中,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0069]該步驟可以包括:獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0070]在步驟103中,在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0071]由該實施例可見,本公開通過在HTML5代碼中設(shè)置JS代碼的簽名信息,獲取其中的簽名信息,并與根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息進行對比,在簽名信息對比結(jié)果相同的情況下,才在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼,這樣就可以保證加載或存儲的JS代碼是沒有被纂改的,實現(xiàn)提高代碼本地加載或存儲的安全性。
[0072]圖2是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的另一流程圖。
[0073]該方法可以應(yīng)用于終端中,如圖2所示,該方法可以包括以下步驟:
[0074]在步驟201中,獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0075]該步驟可以是在訪問HTML5代碼時,獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息。
[0076]在步驟202中,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0077]該步驟可以包括:獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0078]在步驟203中,在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0079]在步驟204中,在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。
[0080]需說明的是,在簽名信息對比結(jié)果不相同的情況下,還可以為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0081]還需要說明的是,步驟203和步驟204沒有必然的順序關(guān)系。
[0082]圖3是本公開根據(jù)一示例性實施例示出的一種代碼安全處理方法的另一流程圖。
[0083]圖3相對于圖1和2,更詳細描述了本公開的方案。圖3描述了客戶端與服務(wù)端的交互過程。
[0084]如圖3所示,該方法可以包括以下步驟:
[0085]在步驟301中,服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名得到簽名信息,將簽名信息預(yù)先設(shè)置在HTML5代碼的HTML5標(biāo)簽中。
[0086]在服務(wù)端對需要傳給客戶端的JS代碼進行簽名得到簽名信息,簽名信息可以包括算法類型和簽名內(nèi)容。本公開可以采用預(yù)設(shè)算法例如md5(Message Digest Algorithm,消息摘要算法第五版)或者sha-1 (Secure Hash Algorithm,安全散列算法)進行簽名但不局限于此。得到簽名信息后,將簽名信息預(yù)先設(shè)置在編寫的HTML5代碼的HTML5標(biāo)簽中,HTML5標(biāo)簽中包括JS代碼進行簽名后的算法類型和簽名內(nèi)容,就可以和JS代碼對應(yīng)了。
[0087]以安全散列算法進行簽名為例,對JS代碼進行散列計算得到運算結(jié)果作為簽名信息。根據(jù)散列算法,每條代碼的散列值的內(nèi)容及長度都是固定的,因此根據(jù)安全散列算法進行簽名可以防止代碼被纂改。然后,將計算的散列值設(shè)置到HTML5代碼的HTML5標(biāo)簽中,例如:〈html sign_method= ’ shal ’ sing_code= ’as2ddsaadf’ js_code= ’http://abc.com/local/data/abc.js,>〈/html>。其中,“js_code” 中與JS代碼相關(guān)。
[0088]需說明的是,在生成或編寫HTM5代碼時,在標(biāo)簽中增加算法類型(也可以稱為簽名類型)和簽名內(nèi)容,可以是由開發(fā)人員手動添加,也可以是代碼邏輯自動進行添加。
[0089]在步驟302中,服務(wù)端預(yù)先在HTML5代碼的HTML5標(biāo)簽中設(shè)置驗證級別標(biāo)識。
[0090]本公開為了提高HTML5網(wǎng)頁展示效率,對驗證簽名必要性不大的JS代碼文件,可以進行安全分級處理。服務(wù)端可以在HTML5標(biāo)簽中增加一個字段,設(shè)置驗證級別標(biāo)識用于標(biāo)志該JS代碼文件的驗證級別。
[0091 ]不同的標(biāo)識可以標(biāo)識不同的驗證級別,例如:標(biāo)識I標(biāo)識在加載時嚴(yán)格校驗,緩存時不用校驗;標(biāo)識2標(biāo)識在加載時可以不嚴(yán)格校驗或不校驗,但在緩存時需嚴(yán)格校驗;標(biāo)識3標(biāo)識允許校驗都不通過,但需設(shè)置有效期,例如設(shè)置較短的過期時間等。需說明的是,標(biāo)識的順序可根據(jù)需要進行設(shè)定。在加載時嚴(yán)格校驗,表示該代碼很關(guān)鍵,不允許有出錯的情況,這樣在一開始就需要校驗,這樣緩存的時候就不需要校驗了;在加載時可以不嚴(yán)格校驗,在緩存時嚴(yán)格校驗,指的是第一次可以出錯,但不能允許接下來的每次都出錯;允許校驗不通過,但需設(shè)置較短的過期時間,是指這次代碼無關(guān)緊要,可以執(zhí)行1-2次,只是保存很短的時間,就會被刪除。
[0092]需說明的是,步驟301和302沒有必然的順序關(guān)系。另外也可以不需要步驟302。
[0093]在步驟303中,客戶端在訪問HTML5代碼時,通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼的HTML5標(biāo)簽中預(yù)置的JS代碼的簽名信息和預(yù)設(shè)的驗證級別標(biāo)識。
[0094]在步驟304中,客戶端通過網(wǎng)絡(luò)視圖Webview從服務(wù)端端獲取JS代碼原文件,根據(jù)預(yù)設(shè)算法對JS代碼原文件進行簽名獲得簽名信息。
[0095]該步驟中的預(yù)設(shè)算法,可以由服務(wù)端與客戶端預(yù)先約定,也可以由客戶端通過HTML5標(biāo)簽中預(yù)置的JS代碼的簽名信息中的算法類型獲知。例如,簽名信息中的算法類型指明是安全散列算法進行簽名,則客戶端也使用安全散列算法進行簽名。
[0096]在步驟305中,客戶端根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,通過網(wǎng)絡(luò)視圖Webview將對JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0097]如果客戶端從標(biāo)簽中獲取的驗證級別標(biāo)識是標(biāo)識在加載時嚴(yán)格校驗,緩存時不用校驗,則客戶端在加載階段通過網(wǎng)絡(luò)視圖Webview將對JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0098]如果客戶端從標(biāo)簽中獲取的驗證級別標(biāo)識是標(biāo)識在加載時可以不嚴(yán)格校驗或不校驗,但在緩存時需嚴(yán)格校驗,則客戶端在加載階段不進行校驗,在存儲階段再通過網(wǎng)絡(luò)視圖Webview將對JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0099]在步驟306中,客戶端在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0100]如果簽名信息對比結(jié)果相同,則客戶端可以加載HTML5代碼中的JS代碼,并可以進一步實現(xiàn)緩存。如果是在存儲階段進行校驗對比,則在簽名信息對比結(jié)果相同后進行緩存。
[0101]本公開中,加載可理解為將把當(dāng)前JS代碼執(zhí)行一次;存儲或緩存是指這段JS代碼比較大或者使用比較頻繁,這樣就需要在客戶端緩存,在下次調(diào)用的時候就不需要從服務(wù)端請求,從而提尚效率。
[0102]在步驟307中,客戶端在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端,或者為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0103]如果簽名信息對比結(jié)果相同,則客戶端可以調(diào)用回調(diào)通知方法,告知服務(wù)端服務(wù)可能被劫持,由服務(wù)端進行解決。或者,客戶端可以為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0104]需說明的是,步驟306和307沒有必然的順序關(guān)系。
[0105]從該實施例可以看出,本公開方案具有以下有益效果:
[0106]本公開充分利用HTML5代碼中的HTML5標(biāo)簽,在標(biāo)簽中設(shè)置JS代碼的簽名信息作為自定義簽名內(nèi)容,客戶端根據(jù)HTML5標(biāo)簽中的簽名信息中的算法類型,選擇對應(yīng)算法對JS代碼原文件進行簽名得簽名信息,再與HTML5標(biāo)簽中的簽名信息進行對比,如果對比結(jié)果相同,表示沒有被纂改,可進行加載和/或存儲,這樣就增強了客戶端本地存儲代碼的安全性,在存儲來源實現(xiàn)嚴(yán)格控制。進一步的,本公開可以對JS代碼進行安全性分級,并進行不同的驗證級別,這樣使得可以提高效率,存儲更加靈活。
[0107]與前述應(yīng)用功能實現(xiàn)方法實施例相對應(yīng),本公開還提供了一種代碼安全處理裝置、終端、設(shè)備及相應(yīng)的的實施例。
[0108]圖4是本公開根據(jù)一示例性實施例示出的一種代碼安全處理裝置的框圖。
[0109]該裝置可以是設(shè)置在終端中。如圖4所示,在代碼安全處理裝置中可以包括:獲取模塊41、校驗?zāi)K42、第一處理模塊43。
[0110]獲取模塊41,用于獲取HTML5代碼中的JS代碼的簽名信息;
[0111]校驗?zāi)K42,用于將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述獲取模塊獲取的HTML5代碼中的JS代碼的簽名信息進行對比;
[0112]第一處理模塊43,用于在所述校驗?zāi)K42的簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼
[0113]由該實施例可見,本公開通過在HTML5代碼中設(shè)置JS代碼的簽名信息,獲取其中的簽名信息,并與根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息進行對比,在簽名信息對比結(jié)果相同的情況下,才在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼,這樣就可以保證加載或存儲的JS代碼是沒有被纂改的,實現(xiàn)提高JS代碼本地加載或存儲的安全性。
[0114]圖5是本公開根據(jù)一示例性實施例示出的一種代碼安全處理裝置的另一框圖。
[0115]該裝置可以是設(shè)置在終端中。如圖5所示,在代碼安全處理裝置中可以包括:獲取模塊41、校驗?zāi)K42、第一處理模塊43、第二處理模塊44、第三處理模塊45。
[0116]其中,獲取模塊41、校驗?zāi)K42、第一處理模塊43的功能參見圖4所述。
[0117]第二處理模塊44,用于在所述校驗?zāi)K42的簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。
[0118]其中,所述獲取模塊41是獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。獲取模塊41可以在訪問HTML5代碼時獲取HTML5代碼中的JS代碼的簽名信息。
[0119]其中,所述校驗?zāi)K42可以包括:分級子模塊421、執(zhí)行子模塊422。
[0120]分級子模塊421,用于獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;
[0121]執(zhí)行子模塊422,用于根據(jù)所述分級子模塊421的所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0122]第三處理模塊45,用于在所述校驗?zāi)K42的簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0123]上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。
[0124]對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本公開方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
[0125]圖6是本公開根據(jù)一示例性實施例示出的一種終端設(shè)備的一結(jié)構(gòu)框圖。
[0126]如圖6所示,終端設(shè)備包括:處理器601和用于存儲處理器601可執(zhí)行指令的存儲器602;
[0127]其中,處理器601被配置為:
[0128]獲取HTML5代碼中的JS代碼的簽名信息;
[0129]將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;
[0130]在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0131]還需說明的是,存儲器602存儲的其他程序,具體參見前面方法流程中的描述,此處不再贅述,處理器601還用于執(zhí)行存儲器602存儲的其他程序。
[0132]圖7是本公開根據(jù)一示例性實施例示出的一種設(shè)備的一結(jié)構(gòu)框圖。
[0133]例如,設(shè)備700可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。
[0134]參照圖7,設(shè)備700可以包括以下一個或多個組件:處理組件702,存儲器704,電源組件706,多媒體組件708,音頻組件710,輸入/輸出(I/O)的接口712,傳感器組件714,以及通信組件716。
[0135]處理組件702通??刂圃O(shè)備700的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件702可以包括一個或多個處理器720來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件702可以包括一個或多個模塊,便于處理組件702和其他組件之間的交互。例如,處理組件702可以包括多媒體模塊,以方便多媒體組件707和處理組件702之間的交互。
[0136]存儲器704被配置為存儲各種類型的數(shù)據(jù)以支持在設(shè)備700的操作。這些數(shù)據(jù)的示例包括用于在設(shè)備700上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器704可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
[0137]電源組件706為設(shè)備700的各種組件提供電力。電源組件706可以包括電源管理系統(tǒng),一個或多個電源,及其他與為設(shè)備700生成、管理和分配電力相關(guān)聯(lián)的組件。
[0138]多媒體組件708包括在設(shè)備700和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件708包括一個前置攝像頭和/或后置攝像頭。當(dāng)設(shè)備700處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
[0139]音頻組件710被配置為輸出和/或輸入音頻信號。例如,音頻組件710包括一個麥克風(fēng)(MIC),當(dāng)設(shè)備700處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風(fēng)被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器704或經(jīng)由通信組件716發(fā)送。在一些實施例中,音頻組件710還包括一個揚聲器,用于輸出音頻信號。
[0140]I/O接口712為處理組件702和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
[0141]傳感器組件714包括一個或多個傳感器,用于為設(shè)備700提供各個方面的狀態(tài)評估。例如,傳感器組件714可以檢測到設(shè)備700的打開/關(guān)閉狀態(tài),組件的相對定位,例如組件為設(shè)備700的顯示器和小鍵盤,傳感器組件714還可以檢測設(shè)備700或設(shè)備700—個組件的位置改變,用戶與設(shè)備700接觸的存在或不存在,設(shè)備700方位或加速/減速和設(shè)備700的溫度變化。傳感器組件714可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件714還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件714還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0142]通信組件716被配置為便于設(shè)備700和其他設(shè)備之間有線或無線方式的通信。設(shè)備700可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件716經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,通信組件716還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
[0143]在示例性實施例中,設(shè)備700可以被一個或多個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
[0144]在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器704,上述指令可由設(shè)備700的處理器720執(zhí)行以完成上述方法。例如,非臨時性計算機可讀存儲介質(zhì)可以是R0M、隨機存取存儲器(RAM)、⑶-R0M、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
[0145]—種非臨時性計算機可讀存儲介質(zhì),當(dāng)存儲介質(zhì)中的指令由終端設(shè)備的處理器執(zhí)行時,使得終端能夠執(zhí)行代碼安全處理方法,方法包括:
[0146]獲取HTML5代碼中的JS代碼的簽名信息;
[0147]將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;
[0148]在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。
[0149]圖8是本公開根據(jù)一示例性實施例示出的一種代碼安全處理系統(tǒng)的一結(jié)構(gòu)框圖。
[0150]如圖8所示,在一種代碼安全處理系統(tǒng)中,包括:客戶端81、服務(wù)端82。
[0151]客戶端81,用于通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼中的JS代碼的簽名信息;將根據(jù)預(yù)設(shè)算法對從服務(wù)端82獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;在簽名信息對比結(jié)果相同的情況下,在客戶端81本地加載和/或存儲所述HTML5代碼中的JS代碼;
[0152]服務(wù)端82,用于向所述客戶端81傳輸JS代碼原文件。
[0153]其中,所述服務(wù)端82可以根據(jù)預(yù)設(shè)算法對JS代碼進行簽名得到簽名信息后預(yù)先設(shè)置在HTML5代碼中的HTML5標(biāo)簽,其中所述簽名信息包括算法類型和簽名內(nèi)容。
[0154]其中,所述服務(wù)端82可以在HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)驗證級別標(biāo)識;所述客戶端81通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
[0155]其中,客戶端81可以在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端82,或者為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。
[0156]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本公開旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
[0157]應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項】
1.一種代碼安全處理方法,其特征在于,包括: 獲取HTML5代碼中的JS代碼的簽名信息; 將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比; 在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取HTML5代碼中的JS代碼的簽名信息包括: 獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取HTML5代碼中的JS代碼的簽名信息包括: 在訪問HTML5代碼時獲取HTML5代碼中的JS代碼的簽名信息。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比,包括: 獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識; 根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。6.根據(jù)權(quán)利要求5所述的方法,其特征在于: 在簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。7.一種代碼安全處理裝置,其特征在于,包括: 獲取模塊,用于獲取HTML5代碼中的JS代碼的簽名信息; 校驗?zāi)K,用于將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述獲取模塊獲取的HTML5代碼中的JS代碼的簽名信息進行對比; 第一處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 第二處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果不相同的情況下,將對比結(jié)果反饋給所述服務(wù)端。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于: 所述獲取模塊是獲取HTML5代碼中的由服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名后預(yù)先設(shè)置在HTML5標(biāo)簽中的簽名信息,其中所述簽名信息包括算法類型和簽名內(nèi)容。10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述校驗?zāi)K包括: 分級子模塊,用于獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識; 執(zhí)行子模塊,用于根據(jù)所述分級子模塊的所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 第三處理模塊,用于在所述校驗?zāi)K的簽名信息對比結(jié)果不相同的情況下,為所述HTML5代碼中的JS代碼設(shè)定有效期后在客戶端本地進行加載和/或存儲處理。12.一種終端設(shè)備,其特征在于,包括: 處理器和用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 獲取HTML5代碼中的JS代碼的簽名信息; 將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比; 在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼。13.一種代碼安全處理系統(tǒng),其特征在于,包括: 客戶端,用于通過網(wǎng)絡(luò)視圖Webview獲取HTML5代碼中的JS代碼的簽名信息;將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比;在簽名信息對比結(jié)果相同的情況下,在客戶端本地加載和/或存儲所述HTML5代碼中的JS代碼; 服務(wù)端,用于向所述客戶端傳輸JS代碼原文件。14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于: 所述服務(wù)端根據(jù)預(yù)設(shè)算法對JS代碼進行簽名得到簽名信息后預(yù)先設(shè)置在HTML5代碼中的HTML5標(biāo)簽,其中所述簽名信息包括算法類型和簽名內(nèi)容。15.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于: 所述服務(wù)端在HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)驗證級別標(biāo)識; 所述客戶端通過網(wǎng)絡(luò)視圖Webv i ew獲取HTML5代碼中的HTML5標(biāo)簽中預(yù)設(shè)的驗證級別標(biāo)識;根據(jù)所述驗證級別標(biāo)識,分別在加載階段或存儲階段,將根據(jù)預(yù)設(shè)算法對從服務(wù)端獲取的JS代碼原文件進行簽名獲得的簽名信息與所述HTML5代碼中的JS代碼的簽名信息進行對比。
【文檔編號】G06F21/51GK106096388SQ201610379881
【公開日】2016年11月9日
【申請日】2016年5月31日
【發(fā)明人】張旭華, 張濤, 劉碩
【申請人】北京小米移動軟件有限公司