CN109582907A - 网页资源完整性的校验方法、装置、设备及可读存储介质 - Google Patents
网页资源完整性的校验方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109582907A CN109582907A CN201811493020.1A CN201811493020A CN109582907A CN 109582907 A CN109582907 A CN 109582907A CN 201811493020 A CN201811493020 A CN 201811493020A CN 109582907 A CN109582907 A CN 109582907A
- Authority
- CN
- China
- Prior art keywords
- file
- verified
- web page
- page resources
- cryptographic hash
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网页资源完整性的校验方法、装置、设备及可读存储介质,该方法包括步骤:当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取待校验文件的第一哈希值;计算待校验文件的第二哈希值;若检测到第二哈希值与第一哈希值不一致,则获取待校验文件对应的文件信息,并将文件信息发送给服务器,以供服务器根据文件信息确定待校验文件处于不完整状态。本发明通过JS工具使网页资源完整性的校验方法适配各种不同类型的浏览器,提高了网页资源完整性校验方法的兼容性,且通过在检测到待校验文件不完整时,发送该待校验文件的文件信息给服务器,以告知服务器待校验文件处于不完整状态,便于服务器及时发现异常的网页资。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种网页资源完整性的校验方法、装置、设备及可读存储介质。
背景技术
目前网页资源完整性的校验方法为SRI策略,SRI是Subresource Integrity的缩写,SRI策略通过对资源进行摘要签名机制,来保证资源的完整性。具体地,浏览器页面在引入JS(Java Script)资源文件的时候会携带签名算法和摘要;然后把该页面发布到服务器,当用户访问页面的时候,浏览器会下载该页面对应的JS资源文件,在浏览器下载JS资源文件之后,会使用SRI中摘要签名机制的签名算法计算出摘要,并与JS资源文件携带的摘要进行比对,如果两个摘要不一致,浏览器就不会执行该JS资源文件,直接拒绝该JS资源文件。而目前支持SRI的浏览器只有谷歌浏览器(Chrome 45)45版本以上和火狐浏览器(FireFox43)43版本以上的浏览器,由此可知,目前网页资源完整性的校验方法SRI适配的浏览器少,兼容性差;且对于异常情况,SRI策略会直接拒绝该JS资源文件,因此不能及时发现异常资源。
发明内容
本发明的主要目的在于提供一种网页资源完整性的校验方法、装置、设备及可读存储介质,旨在解决现有的资源完整性校验方法兼容性差,且无法及时发现异常资源的技术问题。
为实现上述目的,本发明提供一种网页资源完整性的校验方法,所述网页资源完整性的校验方法包括步骤:
当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致;
若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息,并将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
优选地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之前,还包括:
检测所述待校验文件的换行符是否与默认换行符一致;
若所述待校验文件的换行符与所述默认换行符不一致,则将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态;
若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应客户端是否处于空闲状态的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕;
若所述主程序执行完毕,则确定所述客户端处于空闲状态。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤之前,还包括:
当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验;
若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
优选地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之后,还包括:
若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
优选地,所述当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验的步骤之后,还包括:
若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内;
若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
此外,为实现上述目的,本发明还提供一种网页资源完整性的校验装置,所述网页资源完整性的校验装置包括:
获取模块,用于当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算模块,用于计算所述待校验文件的第二哈希值;
检测模块,用于检测所述第二哈希值是否与所述第一哈希值一致;
所述获取模块还用于若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息;
发送模块,用于将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
此外,为实现上述目的,本发明还提供一种网页资源完整性的校验设备,所述网页资源完整性的校验设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的网页资源完整性的校验程序,所述网页资源完整性的校验程序被所述处理器执行时实现如下步骤:
当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致;
若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息,并将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
优选地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之前,处理器还可以用于调用存储器中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
检测所述待校验文件的换行符是否与默认换行符一致;
若所述待校验文件的换行符与所述默认换行符不一致,则将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态;
若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应客户端是否处于空闲状态的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕;
若所述主程序执行完毕,则确定所述客户端处于空闲状态。
优选地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤之前,处理器还可以用于调用存储器中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验;
若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
优选地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之后,处理器还可以用于调用存储器中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
优选地,所述当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验的步骤之后,处理器还可以用于调用存储器中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内;
若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网页资源完整性的校验程序,所述网页资源完整性的校验程序被处理器执行时实现如上所述的网页资源完整性的校验方法的步骤。
本发明当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取待校验文件的第一哈希值,并计算待校验文件的第二哈希值;若检测到第二哈希值与第一哈希值不一致,则获取待校验文件对应的文件信息,并将文件信息发送给服务器,以供服务器根据文件信息确定待校验文件处于不完整状态,通过JS工具使网页资源完整性的校验方法适配各种不同类型的浏览器,提高了网页资源完整性校验方法的兼容性,且通过在检测到待校验文件不完整时,发送该待校验文件的文件信息给服务器,以告知服务器待校验文件处于不完整状态,便于服务器及时发现异常的网页资源。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2是本发明网页资源完整性的校验方法第一实施例的流程示意图;
图3是本发明网页资源完整性的校验方法第二实施例的流程示意图;
图4是本发明网页资源完整性的校验方法第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图1即可为网页资源完整性的校验设备的硬件运行环境的结构示意图。本发明实施例网页资源完整性的校验设备可以是PC,便携计算机等终端设备。
如图1所示,该网页资源完整性的校验设备可以包括:处理器1001,例如CPU,网络接口1004,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的网页资源完整性的校验设备结构并不构成对网页资源完整性的校验设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及网页资源完整性的校验程序。其中,操作***是管理和控制网页资源完整性的校验设备硬件和软件资源的程序,支持网页资源完整性的校验程序以及其它软件或程序的运行。
在图1所示的网页资源完整性的校验设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的网页资源完整性的校验程序,并执行以下操作:
当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致;
若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息,并将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
进一步地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
检测所述待校验文件的换行符是否与默认换行符一致;
若所述待校验文件的换行符与所述默认换行符不一致,则将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
进一步地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态;
若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
进一步地,所述当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应客户端是否处于空闲状态的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕;
若所述主程序执行完毕,则确定所述客户端处于空闲状态。
进一步地,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验;
若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
进一步地,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
进一步地,所述当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于区块链的网页资源完整性的校验程序,并执行以下步骤:
若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内;
若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
基于上述的结构,提出网页资源完整性的校验方法的各个实施例。
参照图2,图2为本发明网页资源完整性的校验方法第一实施例的流程示意图。
本发明实施例提供了网页资源完整性的校验方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
网页资源完整性的校验方法可应用于终端中,终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等移动终端,以及诸如数字TV、台式计算机等固定终端。在网页资源完整性的校验方法的各个实施例中,为了便于描述,省略执行主体进行阐述各个实施例。网页资源完整性的校验方法包括:
步骤S10,当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值。
本实施例中,浏览器的JS工具内置一套处理逻辑,以实现网页资源完整性的校验,处理逻辑对网页资源完整性的校验过程参照下文。当通过浏览器的JS(JavaScript)工具获取到网页资源对应的待校验文件后,获取待校验文件的第一哈希值。其中,网页资源包括但不限于JS文件和CSS(Cascading Style Sheets,层叠样式表);JS一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。由此可知,由于JS的解释器为浏览器的一部分,因此,通过浏览器的JS工具可使本申请的网页资源完整性的校验方法适配不同类型的浏览器,提高了网页资源完整性校验方法的兼容性。
进一步地,为了避免网页资源完整性的校验影响客户端中页面资源的显示,步骤S10包括:
步骤a,当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态。
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断浏览器对应的客户端是否处于空闲状态。其中,浏览器是安装在客户端中的,该客户端可为智能手机、个人计算机和平板电脑等。资源列表是存储在客户端对应的服务器中,在资源列表中,存储有各个需要校验的文件的URL(Uniform Resource Locator,统一资源定位符)和哈希值。哈希值可通过MD5(Message-Digest Algorithm,消息摘要算法)或SHA(Secure Hash Algorithm,安全散列算法)等摘要算法计算得到。在资源列表中,各个需要校验的文件的文件名、URL和哈希值是关联存储的,因此,通过文件名即可查找到对应文件的URL和哈希值。需要说明的是,资源列表是通过打包工具webpack或者gulp等自动打包生成的。打包工具可以把项目的各种JS文件、CSS文件等打包合并成一个或多个文件。
进一步地,判断客户端是否处于空闲状态的过程可为:获取客户端当前的CPU(Central Processing Unit,中央处理器)的资源利用率,判断资源利用率是否大于预设阈值。当确定客户端CPU的资源利用率大于预设阈值时,确定客户端处于繁忙状态;当确定客户端CPU的资源利用率小于或者等于预设阈值时,确定客户端处于空闲状态。其中,预设阈值可根据具体需要设置,如可设置为60%,75%或者78%等。
步骤b,若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
当确定客户端处于空闲状态时,根据网页资源对应文件的文件名在资源列表中获取与文件名对应的URL,根据该URL在服务器中下载该待校验文件,以获取到待校验文件,以及根据该文件名在资源列表中获取待校验文件的哈希值。需要说明的是,为了区分在资源列表中获取到的哈希值和根据所获取的待校验文件计算得到的哈希值,在本发明实施例中,将在资源列表中获取到的哈希值记为第一哈希值,将根据所获取的待校验文件计算得到的哈希值记为第二哈希值。
进一步地,在本发明实施例中,可采用同步的方式获取资源列表和下载待校验文件,但是为了不占用客户端资源,阻塞客户端浏览器页面的显示,本发明实施例也可采用异步的方式获取资源列表和下载待校验文件。具体地,可采用ajax(AsynchronousJavascript And XML,异步JavaScript和XML)异步方式获取资源列表和下载待校验文件。
进一步地,若确定客户端处于繁忙状态,则继续判断浏览器对应的客户端是否处于空闲状态。
进一步地,步骤a包括:
步骤a1,当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕。
步骤a2,若所述主程序执行完毕,则确定所述客户端处于空闲状态。
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断浏览器对应客户端的主程序是否执行完毕。若确定客户端的主程序已执行完毕,则确定客户端处于空闲状态;若确定客户端的主程序未执行完毕,即客户端中当前正在运行主程序,则确定客户端处于繁忙状态。其中,客户端中的主程序是预先设置好的,如可将下载程序、数据传输程序等设置为主程序。
步骤S20,计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致。
当获取到待校验文件后,计算待校验文件的哈希值,并将计算所得的哈希值记为第二哈希值,检测第二哈希值是否与第一哈希值一致。需要说明的是,计算得到第二哈希值与计算得到第一哈希值的算法一致。
步骤S30,若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息,并将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
若检测到第二哈希值与第一哈希值不一致,则确定客户端所获取的待校验文件不完整。当确定待校验文件不完整时,获取待检验文件对应的文件信息,并将所获取的文件信息发送给服务器,以供服务器根据文件信息确定待校验文件处于不完整状态。其中,文件信息包括但不限于待校验文件的脚本、文件名和版本号。需要说明的是,当第二哈希值与第一哈希值不一致时,可确定客户端在获取待校验文件过程中,待校验文件被不法分子劫持,待校验文件被修改了。在将文件信息发送给服务器的过程中,可采用同步或者异步的方式把文件信息发送给服务器。
需要说明的是,在本发明实施例中,当网页资源升级后,就会形成一个新的版本号,每次升级网页资源,都要对该网页资源对应的文件进行如步骤S10、步骤S20和步骤S30所述的完整性校验。可以理解的是,当待校验文件完整时,表明该待校验文件对应的网页资源也是完整的;当待校验文件不完整时,表明该待校验文件对应的网页资源也是不完整的。
进一步地,当服务器获取到文件信息时,服务器根据文件信息输出提示信息提示运维人员,以便于运维人员根据文件信息中的脚本确定网页资源的异常原因。进一步地,当服务器获取到文件信息时,服务器解析文件信息中的脚本,得到解析结果,根据解析结果输出对应的提示信息,以根据该提示信息告知运维人员导致网页资源异常的原因。具体地,服务器通过脚本可确定待校验文件是增加了内容还是被修改了内容,从而输出对应的提示信息告知运维人员待校验文件是增加了内容还是被删除了内容等。
进一步地,若检测到第二哈希值与第一哈希值一致,则确定待校验文件完整,此时发送携带待校验文件版本号和文件名的提示信息给服务器,以通过该提示信息告知服务器待校验文件完整。
本实施当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取待校验文件的第一哈希值,并计算待校验文件的第二哈希值;若检测到第二哈希值与第一哈希值不一致,则获取待校验文件对应的文件信息,并将文件信息发送给服务器,以供服务器根据文件信息确定待校验文件处于不完整状态,通过JS工具使网页资源完整性的校验方法适配各种不同类型的浏览器,提高了网页资源完整性校验方法的兼容性,且通过在检测到待校验文件不完整时,发送该待校验文件的文件信息给服务器,以告知服务器待校验文件处于不完整状态,便于服务器及时发现异常的网页资源。
进一步地,提出本发明网页资源完整性的校验方法第二实施例。
所述网页资源完整性的校验方法第二实施例与所述网页资源完整性的校验方法第一实施例的区别在于,参照图3,网页资源完整性的校验方法还包括:
步骤S40,检测所述待校验文件的换行符是否与默认换行符一致。
当获取到待校验文件后,检测待校验文件的换行符是否与默认换行符一致。需要说明的是,当客户端的操作***不同时,对应的换行符也可能是不同的,如有些操作***的换行符为“/”,有些操作***的换行符为“\n”,有些操作***的换行符为“<br>”。默认换行符是预先设置好,该默认换行符可由运维人员根据具体需要而设置,也可采用服务器出厂时设定的换行符为默认换行符。可以理解的是,为了保证在待校验文件完整的情况下,第一哈希值和第二哈希值一致,计算第一哈希值对应待校验文件中的换行符与计算第二哈希值对应待校验文件的换行符应该相同,即默认换行符即为计算第一哈希值对应待校验文件的换行符。
步骤S50,若所述待校验文件的换行符与所述默认换行符不一致,则将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
若检测到待校验文件的换行符与默认换行符不一致,则将待校验文件的换行符转换成默认换行符,得到转换后的待校验文件,并计算转换后的待校验文件的哈希值,记为第二哈希值。进一步地,若检测到待校验文件的换行符与默认换行符一致,则直接计算待校验文件对应的第二哈希值。
本实施例通过在计算第二哈希值之前,先检测待校验文件的换行符是否与默认换行符一致,若检测到待校验文件的换行符与默认换行符不一致,则将待校验文件的换行符转换成默认换行符,然后再计算第二哈希值,避免了由于换行符的不同导致第二哈希值与第一哈希值不一致,提高了校验待校验文件完整性的准确率。
进一步地,提出本发明网页资源完整性的校验方法第三实施例。
所述网页资源完整性的校验方法第三实施例与所述网页资源完整性的校验方法第一或第二实施例的区别在于,参照图4,网页资源完整性的校验方法还包括:
步骤S60,当获取到网页资源后,判断所述网页资源是否未通过资源完整性校验。
步骤S70,若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
当浏览器对应的web站点启动时,会加载网页资源。当成功加载网页资源,即获取到网页资源时,加载校验网页资源的校验脚本,并通过该校验脚本判断网页资源是否未通过资源完整性校验。若确定网页资源未通过资源完整性校验,则通过浏览器的JS工具获取网页资源对应的待校验文件。其中,校验脚本是预先设置好的,通过调用校验脚本,可执行步骤S10,步骤S20和步骤S30。
具体地,判断网页资源是否未通过资源完整性校验的过程可为:检测网页资源是否携带校验标识,若检测到网页资源携带校验标识,则确定网页资源已通过资源完整性校验;若检测到网页资源未携带校验标识,则确定网页资源未通过资源完整性校验。其中,校验标识可根据具体需要而设置,如可以设置为“*”或者“%”等。
进一步地,为了避免在一段时间内重复校验已通过完整性校验的待校验文件,网页资源完整性的校验方法还包括:
步骤c,若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
进一步地,若检测到第二哈希值与第一哈希值一致,即检测到待校验文件完整时,则为待校验文件添加通过资源完整性校验的校验标识,即为待校验文件对应的网页资源添加通过资源完整性校验的校验标识。进一步地,在为待校验文件添加通过资源完整性校验的校验标识后,发送携带校验标识的待校验文件的脚本、版本号和文件名的提示信息给服务器,以通过该提示信息告知服务器待校验文件完整,即告知服务器待校验文件处于完整状态。
进一步地,为了避免在一段时间内重复校验已通过完整性校验的待校验文件,网页资源完整性的校验方法还包括:
步骤d,若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内。
步骤e,若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
进一步地,若确定网页资源已通过资源完整性校验,则判断网页资源是否处于校验有效期内。若确定网页资源处于校验有效期内,则不需要重复校验该网页资源对应的待校验文件,结束整个校验流程;若确定网页资源未处于校验有效期内,则通过浏览器的JS工具获取网页资源对应的待校验文件。
在本发明实施例中,若第一次检测到网页资源对应的待校验文件完整,则为该网页资源设置一个校验有效期。该校验有效期可根据具体需要而设置,如可将校验有效期设置为10天,30天或者45天等。该校验有效期的起算时间点可从成功设置该校验有效期的设置时间开始起算。具体地,若确定网页资源已通过资源完整性校验,则获取当前时间,计算当前时间与设置时间之间的时间差,若该时间差大于预设时间,则确定网页资源未处于校验有效期内;若该时间差小于或者等于预设时间,则确定网页资源处于校验有效期内。
进一步地,校验有效期也采用时间点来表示,如可将校验有效期设置为2018年11月30。若确定网页资源已通过资源完整性校验,则获取当前时间点,若当前时间点在校验有效期之前,则确定网页资源处于校验有效期内;若当前时间点在校验有效期之后,则确定网页资源未处于校验有效期内。
本实施例通过在获取到网页资源,且在确定网页资源未通过资源完整性校验后,才通过浏览器的JS工具获取网页资源对应的待校验文件,避免在该网页资源已通过资源完整性校验的情况下,再次进行资源完整性校验,减少了资源完整性校验所占用的资源。
此外,本发明实施例还提出网页资源完整性的校验装置,所述网页资源完整性的校验装置包括:
获取模块,用于当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算模块,用于计算所述待校验文件的第二哈希值;
检测模块,用于检测所述第二哈希值是否与所述第一哈希值一致;
所述获取模块还用于若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息;
发送模块,用于将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
进一步地,所述检测模块还用于检测所述待校验文件的换行符是否与默认换行符一致;
所述网页资源完整性的校验装置还包括:
转换模块,用于将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
进一步地,所述获取模块包括:
判断单元,用于当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态;
获取单元,用于若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
进一步地,所述判断单元包括:
判断子单元,用于当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕;
确定子单元,用于若所述主程序执行完毕,则确定所述客户端处于空闲状态。
进一步地,所述检测模块还用于当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验;
所述获取模块还用于若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
进一步地,所述网页资源完整性的校验装置包括:
添加模块,用于若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
进一步地,所述网页资源完整性的校验装置包括:
判断模块,用于若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内;
所述获取单元,用于若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
本发明网页资源完整性的校验装置具体实施方式与上述网页资源完整性的校验方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网页资源完整性的校验程序,所述网页资源完整性的校验程序被处理器执行时实现如上所述的网页资源完整性的校验方法的步骤。
本发明计算机可读存储介质具体实施方式与上述网页资源完整性的校验方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种网页资源完整性的校验方法,其特征在于,所述网页资源完整性的校验方法包括以下步骤:
当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致;
若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息,并将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
2.如权利要求1所述的网页资源完整性的校验方法,其特征在于,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之前,还包括:
检测所述待校验文件的换行符是否与默认换行符一致;
若所述待校验文件的换行符与所述默认换行符不一致,则将所述待校验文件的换行符转换成所述默认换行符,得到转换后的所述待校验文件。
3.如权利要求1所述的网页资源完整性的校验方法,其特征在于,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端是否处于空闲状态;
若所述客户端处于空闲状态,则根据所述资源列表获取待校验文件,以及在所述资源列表中获取所述待校验文件的第一哈希值。
4.如权利要求3所述的网页资源完整性的校验方法,其特征在于,所述当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应客户端是否处于空闲状态的步骤包括:
当通过浏览器的JS工具获取到网页资源对应的资源列表后,判断所述浏览器对应的客户端的主程序是否执行完毕;
若所述主程序执行完毕,则确定所述客户端处于空闲状态。
5.如权利要求1至4任一项所述的网页资源完整性的校验方法,其特征在于,所述当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值的步骤之前,还包括:
当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验;
若确定所述网页资源未通过资源完整性校验,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
6.如权利要求5所述的网页资源完整性的校验方法,其特征在于,所述计算所述待校验文件的第二哈希值,并检测所述第二哈希值是否与所述第一哈希值一致的步骤之后,还包括:
若检测到所述第二哈希值与所述第一哈希值一致,则为所述待校验文件添加通过资源完整性校验的校验标识。
7.如权利要求5所述的网页资源完整性的校验方法,其特征在于,所述当获取到网页资源后,检测所述网页资源是否未通过资源完整性校验的步骤之后,还包括:
若确定所述网页资源已通过资源完整性校验,则判断所述网页资源是否处于校验有效期内;
若所述网页资源未处于校验有效期内,则通过浏览器的JS工具获取所述网页资源对应的待校验文件。
8.一种网页资源完整性的校验装置,其特征在于,所述网页资源完整性的校验装置包括:
获取模块,用于当通过浏览器的JS工具获取到网页资源对应的待校验文件后,获取所述待校验文件的第一哈希值;
计算模块,用于计算所述待校验文件的第二哈希值;
检测模块,用于检测所述第二哈希值是否与所述第一哈希值一致;
所述获取模块还用于若检测到所述第二哈希值与所述第一哈希值不一致,则获取所述待校验文件对应的文件信息;
发送模块,用于将所述文件信息发送给服务器,以供所述服务器根据所述文件信息确定所述待校验文件处于不完整状态。
9.一种网页资源完整性的校验设备,其特征在于,所述网页资源完整性的校验设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的网页资源完整性的校验程序,所述网页资源完整性的校验程序被所述处理器执行时实现如权利要求1-7任一项所述的网页资源完整性的校验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有网页资源完整性的校验程序,所述网页资源完整性的校验程序被处理器执行时实现如权利要求1至7中任一项所述的网页资源完整性的校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493020.1A CN109582907B (zh) | 2018-12-06 | 2018-12-06 | 网页资源完整性的校验方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493020.1A CN109582907B (zh) | 2018-12-06 | 2018-12-06 | 网页资源完整性的校验方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582907A true CN109582907A (zh) | 2019-04-05 |
CN109582907B CN109582907B (zh) | 2023-03-07 |
Family
ID=65928925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811493020.1A Active CN109582907B (zh) | 2018-12-06 | 2018-12-06 | 网页资源完整性的校验方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582907B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007911A (zh) * | 2019-04-11 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种换行符监控方法、装置、设备及计算机可读存储介质 |
CN111159482A (zh) * | 2019-12-19 | 2020-05-15 | 贝壳技术有限公司 | 数据校验方法及*** |
CN111523994A (zh) * | 2020-03-31 | 2020-08-11 | 福建省农村信用社联合社 | 一种手机银行上个人客户信息九要素不完善控制*** |
CN112445761A (zh) * | 2019-08-30 | 2021-03-05 | 中移(苏州)软件技术有限公司 | 一种文件校验方法、装置及存储介质 |
CN113055309A (zh) * | 2019-12-28 | 2021-06-29 | 中移(成都)信息通信科技有限公司 | 资源加载方法、装置、设备及介质 |
CN113709154A (zh) * | 2021-08-25 | 2021-11-26 | 平安国际智慧城市科技股份有限公司 | 浏览器安全处理方法、装置、计算机设备及存储介质 |
CN114189374A (zh) * | 2021-12-02 | 2022-03-15 | 湖南快乐阳光互动娱乐传媒有限公司 | 资源校验方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110085667A1 (en) * | 2009-10-09 | 2011-04-14 | Adgregate Markets, Inc. | Various methods and apparatuses for securing an application container |
CN102790790A (zh) * | 2011-10-21 | 2012-11-21 | 北京安天电子设备有限公司 | 快速获取web服务器文件完整性的校验***及方法 |
CN105306434A (zh) * | 2015-09-11 | 2016-02-03 | 北京金山安全软件有限公司 | 程序文件校验方法及装置、服务器和终端 |
CN107423639A (zh) * | 2017-04-21 | 2017-12-01 | 深圳前海微众银行股份有限公司 | 网页篡改监测方法和装置 |
CN107545175A (zh) * | 2016-06-24 | 2018-01-05 | 广州市动景计算机科技有限公司 | 网页资源验证方法及装置及用户终端 |
CN108256353A (zh) * | 2018-01-11 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 一种数据完整性校验方法、装置及客户端 |
US20180205554A1 (en) * | 2017-01-17 | 2018-07-19 | Go Daddy Operating Company, LLC | Script verification using a digital signature |
CN108667799A (zh) * | 2018-03-28 | 2018-10-16 | 中国科学院信息工程研究所 | 一种针对浏览器缓存投毒的防御方法及*** |
-
2018
- 2018-12-06 CN CN201811493020.1A patent/CN109582907B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110085667A1 (en) * | 2009-10-09 | 2011-04-14 | Adgregate Markets, Inc. | Various methods and apparatuses for securing an application container |
CN102790790A (zh) * | 2011-10-21 | 2012-11-21 | 北京安天电子设备有限公司 | 快速获取web服务器文件完整性的校验***及方法 |
CN105306434A (zh) * | 2015-09-11 | 2016-02-03 | 北京金山安全软件有限公司 | 程序文件校验方法及装置、服务器和终端 |
CN107545175A (zh) * | 2016-06-24 | 2018-01-05 | 广州市动景计算机科技有限公司 | 网页资源验证方法及装置及用户终端 |
US20180205554A1 (en) * | 2017-01-17 | 2018-07-19 | Go Daddy Operating Company, LLC | Script verification using a digital signature |
CN107423639A (zh) * | 2017-04-21 | 2017-12-01 | 深圳前海微众银行股份有限公司 | 网页篡改监测方法和装置 |
CN108256353A (zh) * | 2018-01-11 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 一种数据完整性校验方法、装置及客户端 |
CN108667799A (zh) * | 2018-03-28 | 2018-10-16 | 中国科学院信息工程研究所 | 一种针对浏览器缓存投毒的防御方法及*** |
Non-Patent Citations (3)
Title |
---|
知乎用户QAZCEY: "加强web静态资源安全方法之SRI", 《知乎》 * |
腾讯NEXT学位: "【干货】加强web静态资源安全方法之SRI", 《腾讯云社区》 * |
腾讯NEXT学院: "【干货】加强web静态资源安全方法之SRI", 《微信公众号-腾讯NEXT学院》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007911A (zh) * | 2019-04-11 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种换行符监控方法、装置、设备及计算机可读存储介质 |
CN112445761A (zh) * | 2019-08-30 | 2021-03-05 | 中移(苏州)软件技术有限公司 | 一种文件校验方法、装置及存储介质 |
CN112445761B (zh) * | 2019-08-30 | 2023-04-07 | 中移(苏州)软件技术有限公司 | 一种文件校验方法、装置及存储介质 |
CN111159482A (zh) * | 2019-12-19 | 2020-05-15 | 贝壳技术有限公司 | 数据校验方法及*** |
CN113055309A (zh) * | 2019-12-28 | 2021-06-29 | 中移(成都)信息通信科技有限公司 | 资源加载方法、装置、设备及介质 |
CN111523994A (zh) * | 2020-03-31 | 2020-08-11 | 福建省农村信用社联合社 | 一种手机银行上个人客户信息九要素不完善控制*** |
CN111523994B (zh) * | 2020-03-31 | 2022-06-14 | 福建省农村信用社联合社 | 一种手机银行上个人客户信息九要素不完善控制*** |
CN113709154A (zh) * | 2021-08-25 | 2021-11-26 | 平安国际智慧城市科技股份有限公司 | 浏览器安全处理方法、装置、计算机设备及存储介质 |
CN113709154B (zh) * | 2021-08-25 | 2023-08-15 | 平安国际智慧城市科技股份有限公司 | 浏览器安全处理方法、装置、计算机设备及存储介质 |
CN114189374A (zh) * | 2021-12-02 | 2022-03-15 | 湖南快乐阳光互动娱乐传媒有限公司 | 资源校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109582907B (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582907A (zh) | 网页资源完整性的校验方法、装置、设备及可读存储介质 | |
CN110377321A (zh) | 应用程序升级的方法、装置、终端及存储介质 | |
CN110457628B (zh) | 网页版本校验方法、装置、设备及存储介质 | |
CN106709341B (zh) | 一种针对文件包的病毒处理方法及装置 | |
CN111522738A (zh) | 微服务***的测试方法、装置、存储介质和电子设备 | |
CN108255701B (zh) | 场景测试方法及移动终端 | |
CN110874236A (zh) | 一种跨平台应用装置、终端及存储介质 | |
CN110069739B (zh) | 页面预加载方法及装置 | |
CN110297767B (zh) | 测试用例自动执行方法、装置、设备及存储介质 | |
CN106569860A (zh) | 一种应用管理方法及终端 | |
CN107798064A (zh) | 页面处理方法、电子设备及计算机可读存储介质 | |
CN109739700B (zh) | 一种接口测试方法和装置 | |
CN108804315B (zh) | 应用于动态开发的测试方法、装置、电子设备及存储介质 | |
CN109412896A (zh) | 上传功能的测试方法、装置、计算机设备和存储介质 | |
CN112328217A (zh) | 一种代码部署方法、装置、***、计算机设备和介质 | |
CN113656107A (zh) | 移动应用的加载方法、装置及电子设备 | |
CN111783159A (zh) | 网页篡改的验证方法、装置、计算机设备和存储介质 | |
CN110889116A (zh) | 一种广告拦截方法、装置及电子设备 | |
CN112346981A (zh) | 联调测试覆盖率检测方法及*** | |
CN108062228A (zh) | 一种文件处理方法及其装置 | |
CN109684205B (zh) | ***测试方法、装置、电子设备及存储介质 | |
CN106295371A (zh) | 应用运行方法、文件加固方法和装置 | |
CN112257106B (zh) | 一种数据检测方法及装置 | |
CN113902458A (zh) | 一种恶意用户的识别方法、装置及计算机设备 | |
CN107391663A (zh) | 一种文件md5值自动批量校验装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |