腳本驗證裝置及方法
【專利摘要】本發(fā)明提出了腳本驗證裝置及方法。其中,所述方法包括:在主系統(tǒng)進程啟動之前預編譯至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中;在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本。本發(fā)明所公開的腳本驗證裝置及方法能夠?qū)δ_本的正確性進行驗證并且可以防止腳本的內(nèi)容被人為篡改。
【專利說明】腳本驗證裝置及方法
【技術領域】
[0001]本發(fā)明涉及驗證裝置及方法,更具體地,涉及腳本驗證裝置及方法。
【背景技術】
[0002]目前,隨著計算機和網(wǎng)絡應用的日益廣泛以及不同領域的業(yè)務種類的日益豐富,通過調(diào)用腳本的方式對主系統(tǒng)的功能進行擴展變得越來越重要。
[0003]現(xiàn)有的主系統(tǒng)調(diào)用腳本的方法通常采用如下實現(xiàn)方式:主系統(tǒng)在設計時預留一些外部接口,并通過該接口調(diào)用外部腳本以完成某些特定的功能。
[0004]然而,現(xiàn)有的主系統(tǒng)調(diào)用腳本的方法存在如下問題:(I)由于外部腳本無法編譯到主系統(tǒng)中,故所述外部腳本的內(nèi)容可能會被人為篡改;(2)由于通過腳本的名稱調(diào)用該腳本,故無法對腳本的正確性進行驗證。
[0005]因此,存在如下需求:提供能夠?qū)δ_本的正確性進行驗證并且可以防止腳本的內(nèi)容被人為篡改的腳本驗證裝置及方法。
【發(fā)明內(nèi)容】
[0006]為了解決上述現(xiàn)有技術方案所存在的問題,本發(fā)明提出了能夠?qū)δ_本的正確性進行驗證并且可以防止腳本的內(nèi)容被人為篡改的腳本驗證裝置及方法。
[0007]本發(fā)明的目的是通過以下技術方案實現(xiàn)的:
一種腳本驗證裝置,所述腳本驗證裝置包括:
預編譯模塊,所述預編譯模塊在主系統(tǒng)進程啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程(在該情況下,主系統(tǒng)進程將拒絕調(diào)用任何外部腳本),而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中;
校驗模塊,所述校驗模塊在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
[0008]在上面所公開的方案中,優(yōu)選地,所述預編譯操作包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為預編譯的目標。
[0009]在上面所公開的方案中,優(yōu)選地,所述外部腳本文件的內(nèi)容摘要的哈希值通過如下方式而被計算:從外部腳本文件中按照預定的步長間隔抽取出文件內(nèi)容片斷,并基于所抽取出的文件內(nèi)容片斷計算外部腳本文件的內(nèi)容摘要的哈希值。
[0010]在上面所公開的方案中,優(yōu)選地,所述校驗操作進一步包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為二次編譯的目標,其中,所述外部腳本文件的屬性與所述預編譯操作使用的外部腳本文件的屬性相同,并且以與所述預編譯操作所采用的方式相同的方式計算用于所述二次編譯的外部腳本文件的內(nèi)容摘要的哈希值。
[0011]在上面所公開的方案中,優(yōu)選地,當所述至少一個外部腳本中的一個或多個更新時,所述預編譯模塊I能夠?qū)σ迅碌耐獠磕_本重新進行預編譯操作,從而生成對應的新的二進制文件形式的預編譯結(jié)果。
[0012]本發(fā)明的目的也可以通過以下技術方案實現(xiàn):
一種腳本驗證方法,所述腳本驗證方法包括下列步驟:
(Al)在主系統(tǒng)進程啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程(在該情況下,主系統(tǒng)進程將拒絕調(diào)用任何外部腳本),而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中;
(A2)在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
[0013]本發(fā)明所公開的腳本驗證裝置及方法具有以下優(yōu)點:(1)顯著提高了安全性,例如,不僅校驗外部腳本的屬性,還會校驗外部腳本的內(nèi)容;(2)校驗操作的性能較高,即預編譯結(jié)果首先被加載到內(nèi)存空間中,從而減少了額外的文件讀取操作。
【專利附圖】
【附圖說明】
[0014]結(jié)合附圖,本發(fā)明的技術特征以及優(yōu)點將會被本領域技術人員更好地理解,其中:
圖1是根據(jù)本發(fā)明的實施例的腳本驗證裝置的示意性結(jié)構(gòu)圖;
圖2是根據(jù)本發(fā)明的實施例的腳本驗證方法的流程圖。
【具體實施方式】
[0015]圖1是根據(jù)本發(fā)明的實施例的腳本驗證裝置的示意性結(jié)構(gòu)圖。如圖1所示,本發(fā)明所公開的腳本驗證裝置包括預編譯模塊I和校驗模塊2。其中,所述預編譯模塊I在主系統(tǒng)進程(即調(diào)用外部腳本的應用進程)啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程(在該情況下,主系統(tǒng)進程將拒絕調(diào)用任何外部腳本),而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中。所述校驗模塊2在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
[0016]優(yōu)選地,在本發(fā)明所公開的腳本驗證裝置中,所述預編譯操作包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為預編譯的目標。示例性地,所述外部腳本文件的屬性包括但不限于:文件名稱、文件大小、文件路徑、文件創(chuàng)建時間、文件修改時間
坐寸ο
[0017]示例性地,在本發(fā)明所公開的腳本驗證裝置中,外部腳本文件的內(nèi)容摘要的哈希值通過如下方式而被計算:從外部腳本文件中按照預定的步長間隔抽取出文件內(nèi)容片斷,并基于所抽取出的文件內(nèi)容片斷計算外部腳本文件的內(nèi)容摘要的哈希值。
[0018]優(yōu)選地,在本發(fā)明所公開的腳本驗證裝置中,所述校驗操作進一步包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為二次編譯的目標,其中,所述外部腳本文件的屬性與所述預編譯操作使用的外部腳本文件的屬性相同,并且以與所述預編譯操作所采用的方式相同的方式計算用于所述二次編譯的外部腳本文件的內(nèi)容摘要的哈希值。
[0019]優(yōu)選地,在本發(fā)明所公開的腳本驗證裝置中,當所述至少一個外部腳本中的一個或多個更新時,所述預編譯模塊I能夠?qū)σ迅碌耐獠磕_本重新進行預編譯操作,從而生成對應的新的二進制文件形式的預編譯結(jié)果(即預編譯模塊I能夠在所述主系統(tǒng)進程啟動后的任何需要的時刻針對已更新的外部腳本重新進行預編譯操作,換句話說,可以實現(xiàn)外部腳本的在線更新)。
[0020]優(yōu)選地,在本發(fā)明所公開的腳本驗證裝置中,當所述至少一個外部腳本中的一個或多個更新時,只有具有相關權限的操作者能夠觸發(fā)所述預編譯模塊I對已更新的外部腳本重新進行預編譯操作。
[0021]由上可見,本發(fā)明所公開的腳本驗證裝置具有下列優(yōu)點:(1)顯著提高了安全性,例如,不僅校驗外部腳本的屬性,還會校驗外部腳本的內(nèi)容;(2)校驗操作的性能較高,即預編譯結(jié)果首先被加載到內(nèi)存空間中,從而減少了額外的文件讀取操作。
[0022]圖2是根據(jù)本發(fā)明的實施例的腳本驗證方法的流程圖。如圖2所示,本發(fā)明所公開的腳本驗證方法包括下列步驟:(Al)在主系統(tǒng)進程(即調(diào)用外部腳本的應用進程)啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程(在該情況下,主系統(tǒng)進程將拒絕調(diào)用任何外部腳本),而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中;(A2)在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
[0023]優(yōu)選地,在本發(fā)明所公開的腳本驗證方法中,所述預編譯操作包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為預編譯的目標。示例性地,所述外部腳本文件的屬性包括但不限于:文件名稱、文件大小、文件路徑、文件創(chuàng)建時間、文件修改時間
坐寸ο
[0024]示例性地,在本發(fā)明所公開的腳本驗證方法中,外部腳本文件的內(nèi)容摘要的哈希值通過如下方式而被計算:從外部腳本文件中按照預定的步長間隔抽取出文件內(nèi)容片斷,并基于所抽取出的文件內(nèi)容片斷計算外部腳本文件的內(nèi)容摘要的哈希值。
[0025]優(yōu)選地,在本發(fā)明所公開的腳本驗證方法中,所述校驗操作進一步包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為二次編譯的目標,其中,所述外部腳本文件的屬性與所述預編譯操作使用的外部腳本文件的屬性相同,并且以與所述預編譯操作所采用的方式相同的方式計算用于所述二次編譯的外部腳本文件的內(nèi)容摘要的哈希值。
[0026]優(yōu)選地,在本發(fā)明所公開的腳本驗證方法中,當所述至少一個外部腳本中的一個或多個更新時,對已更新的外部腳本重新進行預編譯操作,從而生成對應的新的二進制文件形式的預編譯結(jié)果(即在所述主系統(tǒng)進程啟動后的任何需要的時刻針對已更新的外部腳本重新進行預編譯操作,換句話說,可以實現(xiàn)外部腳本的在線更新)。
[0027]優(yōu)選地,在本發(fā)明所公開的腳本驗證方法中,當所述至少一個外部腳本中的一個或多個更新時,只有具有相關權限的操作者能夠觸發(fā)對已更新的外部腳本重新進行預編譯操作。
[0028]由上可見,本發(fā)明所公開的腳本驗證方法具有下列優(yōu)點:(1)顯著提高了安全性,例如,不僅校驗外部腳本的屬性,還會校驗外部腳本的內(nèi)容;(2)校驗操作的性能較高,即預編譯結(jié)果首先被加載到內(nèi)存空間中,從而減少了額外的文件讀取操作。
[0029]盡管本發(fā)明是通過上述的優(yōu)選實施方式進行描述的,但是其實現(xiàn)形式并不局限于上述的實施方式。應該認識到:在不脫離本發(fā)明主旨和范圍的情況下,本領域技術人員可以對本發(fā)明做出不同的變化和修改。
【權利要求】
1.一種腳本驗證裝置,所述腳本驗證裝置包括: 預編譯模塊,所述預編譯模塊在主系統(tǒng)進程啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程,而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中; 校驗模塊,所述校驗模塊在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
2.根據(jù)權利要求1所述的腳本驗證裝置,其特征在于,所述預編譯操作包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為預編譯的目標。
3.根據(jù)權利要求2所述的腳本驗證裝置,其特征在于,所述外部腳本文件的內(nèi)容摘要的哈希值通過如下方式而被計算:從外部腳本文件中按照預定的步長間隔抽取出文件內(nèi)容片斷,并基于所抽取出的文件內(nèi)容片斷計算外部腳本文件的內(nèi)容摘要的哈希值。
4.根據(jù)權利要求3所述的腳本驗證裝置,其特征在于,所述校驗操作進一步包括:將外部腳本文件的屬性和外部腳本文件的內(nèi)容摘要的哈希值作為二次編譯的目標,其中,所述外部腳本文件的屬性與所述預編譯操作使用的外部腳本文件的屬性相同,并且以與所述預編譯操作所采用的方式相同的方式計算用于所述二次編譯的外部腳本文件的內(nèi)容摘要的哈希值。
5.根據(jù)權利要求4所述的腳本驗證裝置,其特征在于,當所述至少一個外部腳本中的一個或多個更新時,所述預編譯模塊I能夠?qū)σ迅碌耐獠磕_本重新進行預編譯操作,從而生成對應的新的二進制文件形式的預編譯結(jié)果。
6.一種腳本驗證方法,所述腳本驗證方法包括下列步驟: (Al)在主系統(tǒng)進程啟動之前通過信息采集的方式獲得所有與該主系統(tǒng)進程相關聯(lián)的外部腳本的列表,如果所述外部腳本的列表為空,則終止預處理過程,而如果所述外部腳本的列表包含至少一個外部腳本,則預編譯所述至少一個外部腳本以生成二進制文件形式的預編譯結(jié)果,并且在所述主系統(tǒng)進程啟動時將所述預編譯結(jié)果加載到所述主系統(tǒng)進程的內(nèi)存空間中; (A2)在所述主系統(tǒng)進程調(diào)用所述至少一個外部腳本中的一個時執(zhí)行針對該外部腳本的校驗操作,并且如果所述校驗操作的結(jié)果為“校驗成功”,則所述主系統(tǒng)進程隨后執(zhí)行該外部腳本,而如果所述校驗操作的結(jié)果為“校驗失敗”,則所述主系統(tǒng)進程拒絕執(zhí)行該外部腳本,其中,所述校驗操作包括:二次編譯該外部腳本以產(chǎn)生二次編譯結(jié)果;將所述二次編譯結(jié)果與所述預編譯結(jié)果相比較;如果所述二次編譯結(jié)果與所述預編譯結(jié)果相同,則所述校驗操作的結(jié)果為“校驗成功”,而如果所述二次編譯結(jié)果與所述預編譯結(jié)果不同,則所述校驗操作的結(jié)果為“校驗失敗”。
【文檔編號】G06F11/36GK103885875SQ201210561268
【公開日】2014年6月25日 申請日期:2012年12月21日 優(yōu)先權日:2012年12月21日
【發(fā)明者】王振, 邱鵬 申請人:中國銀聯(lián)股份有限公司