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