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