CN103885875A - 脚本验证装置及方法 - Google Patents
脚本验证装置及方法 Download PDFInfo
- Publication number
- CN103885875A CN103885875A CN201210561268.3A CN201210561268A CN103885875A CN 103885875 A CN103885875 A CN 103885875A CN 201210561268 A CN201210561268 A CN 201210561268A CN 103885875 A CN103885875 A CN 103885875A
- Authority
- CN
- China
- Prior art keywords
- external
- result
- precompile
- scripts
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提出了脚本验证装置及方法。其中,所述方法包括:在主系统进程启动之前预编译至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本。本发明所公开的脚本验证装置及方法能够对脚本的正确性进行验证并且可以防止脚本的内容被人为篡改。
Description
技术领域
本发明涉及验证装置及方法,更具体地,涉及脚本验证装置及方法。
背景技术
目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,通过调用脚本的方式对主系统的功能进行扩展变得越来越重要。
现有的主系统调用脚本的方法通常采用如下实现方式:主系统在设计时预留一些外部接口,并通过该接口调用外部脚本以完成某些特定的功能。
然而, 现有的主系统调用脚本的方法存在如下问题:(1)由于外部脚本无法编译到主系统中,故所述外部脚本的内容可能会被人为篡改;(2)由于通过脚本的名称调用该脚本,故无法对脚本的正确性进行验证。
因此,存在如下需求:提供能够对脚本的正确性进行验证并且可以防止脚本的内容被人为篡改的脚本验证装置及方法。
发明内容
为了解决上述现有技术方案所存在的问题,本发明提出了能够对脚本的正确性进行验证并且可以防止脚本的内容被人为篡改的脚本验证装置及方法。
本发明的目的是通过以下技术方案实现的:
一种脚本验证装置,所述脚本验证装置包括:
预编译模块,所述预编译模块在主系统进程启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程(在该情况下,主系统进程将拒绝调用任何外部脚本),而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;
校验模块,所述校验模块在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
在上面所公开的方案中,优选地,所述预编译操作包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为预编译的目标。
在上面所公开的方案中,优选地,所述外部脚本文件的内容摘要的哈希值通过如下方式而被计算:从外部脚本文件中按照预定的步长间隔抽取出文件内容片断,并基于所抽取出的文件内容片断计算外部脚本文件的内容摘要的哈希值。
在上面所公开的方案中,优选地,所述校验操作进一步包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为二次编译的目标,其中,所述外部脚本文件的属性与所述预编译操作使用的外部脚本文件的属性相同,并且以与所述预编译操作所采用的方式相同的方式计算用于所述二次编译的外部脚本文件的内容摘要的哈希值。
在上面所公开的方案中,优选地,当所述至少一个外部脚本中的一个或多个更新时,所述预编译模块1能够对已更新的外部脚本重新进行预编译操作,从而生成对应的新的二进制文件形式的预编译结果。
本发明的目的也可以通过以下技术方案实现:
一种脚本验证方法,所述脚本验证方法包括下列步骤:
(A1)在主系统进程启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程(在该情况下,主系统进程将拒绝调用任何外部脚本),而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;
(A2)在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
本发明所公开的脚本验证装置及方法具有以下优点:(1)显著提高了安全性,例如,不仅校验外部脚本的属性,还会校验外部脚本的内容;(2)校验操作的性能较高,即预编译结果首先被加载到内存空间中,从而减少了额外的文件读取操作。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的脚本验证装置的示意性结构图;
图2是根据本发明的实施例的脚本验证方法的流程图。
具体实施方式
图1是根据本发明的实施例的脚本验证装置的示意性结构图。如图1所示,本发明所公开的脚本验证装置包括预编译模块1和校验模块2。其中,所述预编译模块1在主系统进程(即调用外部脚本的应用进程)启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程(在该情况下,主系统进程将拒绝调用任何外部脚本),而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中。所述校验模块2在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
优选地,在本发明所公开的脚本验证装置中,所述预编译操作包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为预编译的目标。示例性地,所述外部脚本文件的属性包括但不限于:文件名称、文件大小、文件路径、文件创建时间、文件修改时间等。
示例性地,在本发明所公开的脚本验证装置中,外部脚本文件的内容摘要的哈希值通过如下方式而被计算:从外部脚本文件中按照预定的步长间隔抽取出文件内容片断,并基于所抽取出的文件内容片断计算外部脚本文件的内容摘要的哈希值。
优选地,在本发明所公开的脚本验证装置中,所述校验操作进一步包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为二次编译的目标,其中,所述外部脚本文件的属性与所述预编译操作使用的外部脚本文件的属性相同,并且以与所述预编译操作所采用的方式相同的方式计算用于所述二次编译的外部脚本文件的内容摘要的哈希值。
优选地,在本发明所公开的脚本验证装置中,当所述至少一个外部脚本中的一个或多个更新时,所述预编译模块1能够对已更新的外部脚本重新进行预编译操作,从而生成对应的新的二进制文件形式的预编译结果(即预编译模块1能够在所述主系统进程启动后的任何需要的时刻针对已更新的外部脚本重新进行预编译操作,换句话说,可以实现外部脚本的在线更新)。
优选地,在本发明所公开的脚本验证装置中,当所述至少一个外部脚本中的一个或多个更新时,只有具有相关权限的操作者能够触发所述预编译模块1对已更新的外部脚本重新进行预编译操作。
由上可见,本发明所公开的脚本验证装置具有下列优点:(1)显著提高了安全性,例如,不仅校验外部脚本的属性,还会校验外部脚本的内容;(2)校验操作的性能较高,即预编译结果首先被加载到内存空间中,从而减少了额外的文件读取操作。
图2是根据本发明的实施例的脚本验证方法的流程图。如图2所示,本发明所公开的脚本验证方法包括下列步骤:(A1)在主系统进程(即调用外部脚本的应用进程)启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程(在该情况下,主系统进程将拒绝调用任何外部脚本),而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;(A2)在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
优选地,在本发明所公开的脚本验证方法中,所述预编译操作包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为预编译的目标。示例性地,所述外部脚本文件的属性包括但不限于:文件名称、文件大小、文件路径、文件创建时间、文件修改时间等。
示例性地,在本发明所公开的脚本验证方法中,外部脚本文件的内容摘要的哈希值通过如下方式而被计算:从外部脚本文件中按照预定的步长间隔抽取出文件内容片断,并基于所抽取出的文件内容片断计算外部脚本文件的内容摘要的哈希值。
优选地,在本发明所公开的脚本验证方法中,所述校验操作进一步包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为二次编译的目标,其中,所述外部脚本文件的属性与所述预编译操作使用的外部脚本文件的属性相同,并且以与所述预编译操作所采用的方式相同的方式计算用于所述二次编译的外部脚本文件的内容摘要的哈希值。
优选地,在本发明所公开的脚本验证方法中,当所述至少一个外部脚本中的一个或多个更新时,对已更新的外部脚本重新进行预编译操作,从而生成对应的新的二进制文件形式的预编译结果(即在所述主系统进程启动后的任何需要的时刻针对已更新的外部脚本重新进行预编译操作,换句话说,可以实现外部脚本的在线更新)。
优选地,在本发明所公开的脚本验证方法中,当所述至少一个外部脚本中的一个或多个更新时,只有具有相关权限的操作者能够触发对已更新的外部脚本重新进行预编译操作。
由上可见,本发明所公开的脚本验证方法具有下列优点:(1)显著提高了安全性,例如,不仅校验外部脚本的属性,还会校验外部脚本的内容;(2)校验操作的性能较高,即预编译结果首先被加载到内存空间中,从而减少了额外的文件读取操作。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (6)
1.一种脚本验证装置,所述脚本验证装置包括:
预编译模块,所述预编译模块在主系统进程启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程,而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;
校验模块,所述校验模块在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
2.根据权利要求1所述的脚本验证装置,其特征在于,所述预编译操作包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为预编译的目标。
3.根据权利要求2所述的脚本验证装置,其特征在于,所述外部脚本文件的内容摘要的哈希值通过如下方式而被计算:从外部脚本文件中按照预定的步长间隔抽取出文件内容片断,并基于所抽取出的文件内容片断计算外部脚本文件的内容摘要的哈希值。
4.根据权利要求3所述的脚本验证装置,其特征在于,所述校验操作进一步包括:将外部脚本文件的属性和外部脚本文件的内容摘要的哈希值作为二次编译的目标,其中,所述外部脚本文件的属性与所述预编译操作使用的外部脚本文件的属性相同,并且以与所述预编译操作所采用的方式相同的方式计算用于所述二次编译的外部脚本文件的内容摘要的哈希值。
5.根据权利要求4所述的脚本验证装置,其特征在于,当所述至少一个外部脚本中的一个或多个更新时,所述预编译模块1能够对已更新的外部脚本重新进行预编译操作,从而生成对应的新的二进制文件形式的预编译结果。
6.一种脚本验证方法,所述脚本验证方法包括下列步骤:
(A1)在主系统进程启动之前通过信息采集的方式获得所有与该主系统进程相关联的外部脚本的列表,如果所述外部脚本的列表为空,则终止预处理过程,而如果所述外部脚本的列表包含至少一个外部脚本,则预编译所述至少一个外部脚本以生成二进制文件形式的预编译结果,并且在所述主系统进程启动时将所述预编译结果加载到所述主系统进程的内存空间中;
(A2)在所述主系统进程调用所述至少一个外部脚本中的一个时执行针对该外部脚本的校验操作,并且如果所述校验操作的结果为“校验成功”,则所述主系统进程随后执行该外部脚本,而如果所述校验操作的结果为“校验失败”,则所述主系统进程拒绝执行该外部脚本,其中,所述校验操作包括:二次编译该外部脚本以产生二次编译结果;将所述二次编译结果与所述预编译结果相比较;如果所述二次编译结果与所述预编译结果相同,则所述校验操作的结果为“校验成功”,而如果所述二次编译结果与所述预编译结果不同,则所述校验操作的结果为“校验失败”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210561268.3A CN103885875A (zh) | 2012-12-21 | 2012-12-21 | 脚本验证装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210561268.3A CN103885875A (zh) | 2012-12-21 | 2012-12-21 | 脚本验证装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103885875A true CN103885875A (zh) | 2014-06-25 |
Family
ID=50954783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210561268.3A Pending CN103885875A (zh) | 2012-12-21 | 2012-12-21 | 脚本验证装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885875A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786465A (zh) * | 2014-12-23 | 2016-07-20 | 远光软件股份有限公司 | 一种脚本语言执行方法及装置 |
CN106874020A (zh) * | 2015-12-10 | 2017-06-20 | 五八同城信息技术有限公司 | 启动插件的方法及装置 |
CN111914250A (zh) * | 2020-08-18 | 2020-11-10 | 中科方德软件有限公司 | 一种Linux系统脚本程序运行时验证与管控方法 |
CN113342323A (zh) * | 2021-06-29 | 2021-09-03 | 银清科技有限公司 | 软件在线开发的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565544B1 (en) * | 2005-04-04 | 2009-07-21 | Landesk Software, Inc. | Systems and methods for verifying the trustworthiness of a file comprising computer instructions |
CN101739277A (zh) * | 2009-12-08 | 2010-06-16 | 南京联创科技集团股份有限公司 | 基于自定义脚本方式管理业务监控系统的方法 |
CN101739340A (zh) * | 2009-12-17 | 2010-06-16 | 金蝶软件(中国)有限公司 | 一种脚本文件的验证方法和装置 |
CN102244659A (zh) * | 2011-06-30 | 2011-11-16 | 成都市华为赛门铁克科技有限公司 | 安全策略脚本执行方法、装置以及安全策略系统 |
CN102368257A (zh) * | 2010-10-06 | 2012-03-07 | 微软公司 | 动态内容中的跨站点脚本阻止 |
CN102819698A (zh) * | 2011-12-27 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 检测网页中恶意代码的方法及装置 |
-
2012
- 2012-12-21 CN CN201210561268.3A patent/CN103885875A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565544B1 (en) * | 2005-04-04 | 2009-07-21 | Landesk Software, Inc. | Systems and methods for verifying the trustworthiness of a file comprising computer instructions |
CN101739277A (zh) * | 2009-12-08 | 2010-06-16 | 南京联创科技集团股份有限公司 | 基于自定义脚本方式管理业务监控系统的方法 |
CN101739340A (zh) * | 2009-12-17 | 2010-06-16 | 金蝶软件(中国)有限公司 | 一种脚本文件的验证方法和装置 |
CN102368257A (zh) * | 2010-10-06 | 2012-03-07 | 微软公司 | 动态内容中的跨站点脚本阻止 |
CN102244659A (zh) * | 2011-06-30 | 2011-11-16 | 成都市华为赛门铁克科技有限公司 | 安全策略脚本执行方法、装置以及安全策略系统 |
CN102819698A (zh) * | 2011-12-27 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 检测网页中恶意代码的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786465A (zh) * | 2014-12-23 | 2016-07-20 | 远光软件股份有限公司 | 一种脚本语言执行方法及装置 |
CN106874020A (zh) * | 2015-12-10 | 2017-06-20 | 五八同城信息技术有限公司 | 启动插件的方法及装置 |
CN106874020B (zh) * | 2015-12-10 | 2021-02-02 | 五八同城信息技术有限公司 | 启动插件的方法及装置 |
CN111914250A (zh) * | 2020-08-18 | 2020-11-10 | 中科方德软件有限公司 | 一种Linux系统脚本程序运行时验证与管控方法 |
CN111914250B (zh) * | 2020-08-18 | 2022-05-17 | 中科方德软件有限公司 | 一种Linux系统脚本程序运行时验证与管控方法 |
CN113342323A (zh) * | 2021-06-29 | 2021-09-03 | 银清科技有限公司 | 软件在线开发的方法及装置 |
CN113342323B (zh) * | 2021-06-29 | 2024-03-29 | 银清科技有限公司 | 软件在线开发的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559591B (zh) | 基于可信计算的软件管理系统和管理方法 | |
TWI687867B (zh) | 用於可信執行環境的可信應用產生及安裝方法 | |
US20160142437A1 (en) | Method and system for preventing injection-type attacks in a web based operating system | |
CN105205401A (zh) | 基于安全密码芯片的可信计算机系统及其可信引导方法 | |
CN108845812A (zh) | 插件更新方法、装置、计算机设备和存储介质 | |
CN109634600B (zh) | 一种基于安全扩展SysML和AADL模型的代码生成方法 | |
CN104123481A (zh) | 防止应用程序被篡改的方法及装置 | |
EP3074911B1 (en) | Method for loading a native code on a secure element | |
CN101226569A (zh) | 在虚拟机中验证代码模块的方法及装置 | |
CN105786538A (zh) | 基于安卓系统的软件升级方法和装置 | |
CN104899027A (zh) | 一种实现js通用表单验证的方法 | |
CN103473067A (zh) | 嵌入式Linux分区与数据还原方法、系统及系统开发方法 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
CN103778061A (zh) | 数组越界错误的自动检测和校正方法 | |
CN103067392A (zh) | 一种基于Android终端的安全访问控制方法 | |
CN108229148A (zh) | 一种基于Android虚拟机的沙箱脱壳方法及系统 | |
CN103177199A (zh) | 网页应用代码保护方法及系统和执行的提速方法及系统 | |
CN103631712B (zh) | 一种基于内存管理的模式化软件关键行为跟踪方法 | |
CN102244659A (zh) | 安全策略脚本执行方法、装置以及安全策略系统 | |
CN103885875A (zh) | 脚本验证装置及方法 | |
WO2017020459A1 (zh) | 一种为宿主配置插件包的方法与装置 | |
CN102495736A (zh) | 一种在可执行文件中标识软件代码svn版本的方法和系统 | |
CN102902530A (zh) | 一种基于linux嵌入式操作系统的程序校验装置 | |
CN105335432A (zh) | oracle数据库访问方法 | |
CN102682237A (zh) | 针对网络下载文件的判毒方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140625 |