CN107085692B - 一种安全加载Flash文件的方法及装置 - Google Patents
一种安全加载Flash文件的方法及装置 Download PDFInfo
- Publication number
- CN107085692B CN107085692B CN201710206792.1A CN201710206792A CN107085692B CN 107085692 B CN107085692 B CN 107085692B CN 201710206792 A CN201710206792 A CN 201710206792A CN 107085692 B CN107085692 B CN 107085692B
- Authority
- CN
- China
- Prior art keywords
- target
- sub
- flash file
- cryptographic hash
- flash
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种安全加载Flash文件的方法及装置。本发明实施例方法包括:在接收到用户终端发送的下载目标子Flash文件的请求后,向用户终端发送目标子Flash文件;接收用户终端发送的目标子Flash文件的文件名和第一哈希值;根据目标子Flash文件的文件名查找目标子Flash文件,并根据目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;比对第一哈希值和所述第二哈希值,得到目标子Flash文件是否正确的第一比对结果;将第一比对结果返回给用户终端。本发明实施例Flash程序在加载子Flash文件时,先通过服务器对子Flash文件进行哈希验证,确定子Flash文件的真伪后再加载子Flash文件,避免了病毒Flash文件的加载,减低了安全风险。
Description
技术领域
本发明涉及信息处理技术领域,特别涉及一种安全加载Flash文件的方法及装置。
背景技术
目前,Flash被广泛的用于网页设计和网页动画制作及网页视频播放等。大多数的视频网站包括直播网站都采用Flash做为其视频播放器,并且大多数的网页游戏也会使用Flash来开发,Flash的具体使用文件是SWF(Shock Wave Flash)文件。在一个大型的Flash程序中,通常会编写多个SWF文件,每个SWF文件完成部分功能,从而方便进行模块化开发,同时对于SWF所使用的资源文件也通常都放到一个独立的SWF文件中。首先客户端会下载一个主SWF文件,主SWF文件则会去下载其他的子SWF文件,并加载子SWF文件,从而合作完成整个功能。由于目前WEB端病毒比较多,病毒文件会伪装成和子SWF文件一样的文件名,从而主SWF文件可能会加载成病毒SWF文件,从而使得客户端电脑中毒。或者对于一些子SWF文件在网络传输中被修改,那么加载这种被修改或者没有下载完成的SWF则会引起程序错误。
发明内容
本发明实施例提供了一种安全加载Flash文件的方法及装置,避免了病毒Flash文件的加载,减低了安全风险。
第一方面,本申请提供一种安全加载Flash文件的方法,应用于服务器,该方法包括:
在接收到用户终端发送的下载目标子Flash文件的请求后,向所述用户终端发送所述目标子Flash文件,所述目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
接收所述用户终端发送的所述目标子Flash文件的文件名和第一哈希值,所述第一哈希值为所述用户终端根据所述目标子Flash文件的第一内容进行哈希计算得到的;
根据所述目标子Flash文件的文件名查找所述目标子Flash文件,并根据所述目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果;
将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,所述方法还包括:
接收所述用户终端发送的第三哈希值,所述第三哈希值为所述用户终端根据所述目标子Flash文件的第二内容进行哈希计算得到的,所述第二内容与所述第一内容不同;
根据所述目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
比对所述第三哈希值和所述第四哈希值,得到第二比对结果;
将所述第二比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确,且所述第二比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,在所述接收所述用户终端发送的第三哈希值之前,所述方法还包括:
向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
进一步的,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。
进一步的,所述比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果的步骤,包括:
比对所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值相同,则所述第一比对结果为所述目标子Flash文件正确;
若所述第一哈希值和所述第二哈希值不相同,则所述第一比对结果为所述目标子Flash文件错误。
第二方面,本申请提供一种安全加载Flash文件的装置,应用于服务器,该装置包括:
发送单元,用于在接收到用户终端发送的下载目标子Flash文件的请求后,向所述用户终端发送所述目标子Flash文件,所述目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
接收单元,用于接收所述用户终端发送的所述目标子Flash文件的文件名和第一哈希值,所述第一哈希值为所述用户终端根据所述目标子Flash文件的第一内容进行哈希计算得到的;
哈希计算单元,用于根据所述目标子Flash文件的文件名查找所述目标子Flash文件,并根据所述目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
比对单元,用于比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果;
反馈单元,用于将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,所述接收单元还用于接收所述用户终端发送的第三哈希值,所述第三哈希值为所述用户终端根据所述目标子Flash文件的第二内容进行哈希计算得到的,所述第二内容与所述第一内容不同;
所述哈希计算单元还用于根据所述目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
所述比对单元还用于比对所述第三哈希值和所述第四哈希值,得到第二比对结果;
所述反馈单元还用于将所述第二比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确,且所述第二比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,所述发送单元还用于在所述接收所述用户终端发送的第三哈希值之前,向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
进一步的,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。
进一步的,所述比对单元具体用于:
比对所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值相同,则所述第一比对结果为所述目标子Flash文件正确;
若所述第一哈希值和所述第二哈希值不相同,则所述第一比对结果为所述目标子Flash文件错误。
本发明实施例在接收到用户终端发送的下载目标子Flash文件的请求后,向用户终端发送目标子Flash文件;接收用户终端发送的目标子Flash文件的文件名和第一哈希值;根据目标子Flash文件的文件名查找目标子Flash文件,并根据目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;比对第一哈希值和所述第二哈希值,得到目标子Flash文件是否正确的第一比对结果;将第一比对结果返回给用户终端,以使得用户终端在第一比对结果为正确时,在目标Flash程序中加载目标子Flash文件。本发明实施例Flash程序在加载子Flash文件时,先通过服务器对子Flash文件进行哈希验证,确定子Flash文件的真伪后再加载子Flash文件,避免了病毒Flash文件的加载,减低了安全风险。
附图说明
图1是本发明实施例中服务器侧安全加载Flash文件的方法的一个实施例示意图;
图2是图1所示实施例中步骤S4的一个实施例示意图;
图3是图1所示实施例基础上,服务器侧安全加载Flash文件的方法的另一个实施例示意图;
图4是本发明实施例中服务器侧安全加载Flash文件的装置的一个实施例示意图;
图5是本发明实施例中用户终端侧安全加载Flash文件的方法的一个实施例示意图;
图6是本发明实施例中用户终端侧安全加载Flash文件的方法的另一个实施例示意图
图7是在图5基础上,安全加载Flash文件的方法的另一个实施例示意图;
图8是本发明实施例中用户终端侧安全加载Flash文件的装置的一个实施例示意图;
图9是本发明实施例中用户终端侧安全加载Flash文件的装置的另一个实施例示意图;
图10是本发明实施例中用户终端侧安全加载Flash文件的装置的另一个实施例示意图;
图11是本发明实施例中用户终端侧安全加载Flash文件的装置的另一个实施例示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例中涉及用户终端和服务器两个硬件主体,用户终端通过网络与服务器进行连接,本发明实施例中针对的如何安全加载Flash文件。下面介绍本发明实施例中服务器侧安全加载Flash文件的方法,该方法应用于安全加载Flash文件的装置,该装置应用于服务器。
请参阅图1,本发明实施例中安全加载Flash文件的方法的一个实施例包括:
S1、在接收到用户终端发送的下载目标子Flash文件的请求后,向用户终端发送目标子Flash文件;
本发明实施例中,Flash文件可以是SWF文件,在一个Flash程序中一般都会使用多个SWF文件来一起完成Flash的功能。因此,本实施例中,该目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
S2、接收用户终端发送的目标子Flash文件的文件名和第一哈希值;
其中,该第一哈希值为所述用户终端根据该目标子Flash文件的第一内容进行哈希计算得到的;
S3、根据目标子Flash文件的文件名查找目标子Flash文件,并根据目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
S4、比对第一哈希值和所述第二哈希值,得到目标子Flash文件是否正确的第一比对结果;
S5、将第一比对结果返回给用户终端,以使得用户终端在第一比对结果为正确时,在目标Flash程序中加载目标子Flash文件。
本发明实施例在接收到用户终端发送的下载目标子Flash文件的请求后,向用户终端发送目标子Flash文件;接收用户终端发送的目标子Flash文件的文件名和第一哈希值;根据目标子Flash文件的文件名查找目标子Flash文件,并根据目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;比对第一哈希值和所述第二哈希值,得到目标子Flash文件是否正确的第一比对结果;将第一比对结果返回给用户终端,以使得用户终端在第一比对结果为正确时,在目标Flash程序中加载目标子Flash文件。本发明实施例Flash程序在加载子Flash文件时,先通过服务器对子Flash文件进行哈希验证,确定子Flash文件的真伪后再加载子Flash文件,避免了病毒Flash文件的加载,减低了安全风险。
本发明一些实施例中,如图2所示,步骤S4具体可以包括:
S41、比对第一哈希值和所述第二哈希值;
S42、若第一哈希值和第二哈希值相同,则第一比对结果为目标子Flash文件正确;
S43、若第一哈希值和第二哈希值不相同,则第一比对结果为目标子Flash文件错误。
在本发明的一些实施例中,在第一比对结果为正确时,可以进一步验证目标子Flash文件的正确性,此时,如图3所示,本发明实施例中方法还可以包括:
S6、接收用户终端发送的第三哈希值;
其中,该第三哈希值为所述用户终端根据目标子Flash文件的第二内容进行哈希计算得到的,该第二内容与该第一内容不同;例如当目标子Flash文件为一个子Flash文件,第一内容可以是目标子Flash文件的全部内容,第二内容可以目标子Flash文件的部分内容,这样先针对目标子Flash文件全部内容进行验证,再针对部分内容进一步验证可以提高安全性。
第二内容可以包括目标子Flash文件名称、计算目标子Flash文件部分文件的偏移值(offset),计算目标子Flash文件部分文件的计算大小(size)。
S7、根据目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
S8、比对第三哈希值和第四哈希值,得到第二比对结果;
同样的,该步骤S8与上述步骤S4类似,此处不再赘述。
S9、将第二比对结果返回给所述用户终端,以使得用户终端在第一比对结果为正确,且第二比对结果为正确时,在目标Flash程序中加载目标子Flash文件。
进一步的,在所述接收所述用户终端发送的第三哈希值之前,所述方法还包括:
向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
进一步的,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。这样对于对于第一次验证正确的目标子Flash文件,服务器进行进一步的下发指令对目标子Flash文件的部分文件内容再计算哈希值,此种做法的好处是服务器可以控制用户终端来对目标子Flash文件的那段内容进行校验,从而安全性更高。
下面介绍本发明实施例中服务器侧安全加载Flash文件的装置,该装置应用于服务器。
请参阅图4,本发明实施例中安全加载Flash文件的装置的一个实施例包括:
发送单元401,用于在接收到用户终端发送的下载目标子Flash文件的请求后,向所述用户终端发送所述目标子Flash文件,所述目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
接收单元402,用于接收所述用户终端发送的所述目标子Flash文件的文件名和第一哈希值,所述第一哈希值为所述用户终端根据所述目标子Flash文件的第一内容进行哈希计算得到的;
哈希计算单元403,用于根据所述目标子Flash文件的文件名查找所述目标子Flash文件,并根据所述目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
比对单元404,用于比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果;
反馈单元405,用于将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,所述接收单元402还用于接收所述用户终端发送的第三哈希值,所述第三哈希值为所述用户终端根据所述目标子Flash文件的第二内容进行哈希计算得到的,所述第二内容与所述第一内容不同;
所述哈希计算单元403还用于根据所述目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
所述比对单元404还用于比对所述第三哈希值和所述第四哈希值,得到第二比对结果;
所述反馈单元405还用于将所述第二比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确,且所述第二比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,所述发送单元401还用于在所述接收所述用户终端发送的第三哈希值之前,向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
进一步的,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。
进一步的,所述比对单元404具体用于:
比对所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值相同,则所述第一比对结果为所述目标子Flash文件正确;
若所述第一哈希值和所述第二哈希值不相同,则所述第一比对结果为所述目标子Flash文件错误。
下面介绍本发明实施例中用户终端侧安全加载Flash文件的方法,该方法应用于安全加载Flash文件的装置,该装置应用于用户终端。
请参阅图5,本发明实施例中用户终端侧安全加载Flash文件的方法的一个实施例包括:
S51、在下载目标Flash程序中的主Flash文件后,通过主Flash文件从服务器下载目标子Flash文件;
其中,该目标子Flash文件包括该目标Flash程序中除主Flash文件之外的至少一个子Flash文件。
本发明实施例中,Flash文件可以是SWF文件,由于在一个Flash程序中会使用多个SWF文件来一起完成Flash的功能,所以在一般都会由主SWF文件来下载其他的子SWF文件。
S52、对目标子Flash文件的第一内容进行哈希计算,得到第一哈希值;
本实施例中,目标子Flash文件可以是目标Flash程序中的一个子Flash文件,也可以是目标Flash程序中的多个子Flash文件。
当目标子Flash文件为多个子Flash文件时,目标子Flash文件的第一内容可以该多个子Flash文件中的预设内容。对目标子Flash文件的第一内容进行哈希计算,得到第一哈希值可以是:计算目标子Flash文件中每个目标子Flash文件中预设内容对应的哈希值,此时,该第一哈希值即包括多个子Flash文件对应的哈希值。
当目标子Flash文件为一个子Flash文件时,目标子Flash文件的第一内容可以是目标子Flash文件的一部分或全部。
当从服务器下载完目标子Flash文件后,则可以获取到目标子SWF文件的内容,然后对其中的第一内容进行哈希计算,得到第一哈希值。
S53、将目标子Flash文件的文件名和第一哈希值发送到服务器;
本发明实施例中,当所有的标子Flash文件下载完成后,并计算得到第一哈希值后,则可以将标子Flash文件的名称和一哈希值一起打包后发送到服务器,为了数据安全,打包发送时可以使用加密算法对数据进行加密后上报到服务器,此处不做限定。
S54、接收服务器发送的第一比对结果;
其中,所述第一比对结果为服务器根据目标子Flash文件的文件名,计算目标子Flash文件的第一内容对应的第二哈希值,并比对第一哈希值和第二哈希值得到的目标子Flash文件的是否正确的结果;
S55、在第一比对结果为正确时,在目标Flash程序中加载目标子Flash文件。
在第一比对结果为正确时,可以在一定程度上证明目标子Flash文件是安全的,可以在目标Flash程序中加载目标子Flash文件(也可以继续判定后加载目标子Flash文件,后续实施例中详述)。在第一比对结果为错误时,则证明目标子Flash文件是不安全的,可以停止在目标Flash程序中加载目标子Flash文件。
本发明实施例在下载目标Flash程序中的主Flash文件后,通过主Flash文件从服务器下载目标子Flash文件;对目标子Flash文件的第一内容进行哈希计算,得到第一哈希值;将目标子Flash文件的文件名和第一哈希值发送到服务器;接收服务器发送的第一比对结果;在第一比对结果为正确时,在目标Flash程序中加载所述目标子Flash文件。本发明实施例Flash程序在加载子Flash文件时,先对子Flash文件进行哈希验证,确定子Flash文件的真伪后再加载子Flash文件,避免了病毒Flash文件的加载,减低了安全风险。
在本发明一些实施例中,如图6所示,在下载目标Flash程序中的主Flash文件之后,对所述目标子Flash文件的第一内容进行哈希计算,得到第一哈希值的步骤之前,所述方法还包括:
S56、在主Flash文件中编写校验数据的哈希函数接口;
具体的,以哈希函数为MD5函数为例,编写的MD5函数接口如下:
void Md5Create(char*input,int input_len,char*md5Result);
其中,参数char*input为输入需要计算MD5的数据;参数int input_len为输入需要校验数据的长度;参数char*md5Result为计算的MD5结果数据。
至此,通过这个步骤就事先编写一个MD5数据校验的接口供后续加载完成目标子Flash文件后来调用此算法来计算该Flash文件的哈希值。
此时,步骤S52可以具体是:
S52’、调用预先编写的校验数据的哈希函数接口,对目标子Flash文件的第一内容进行哈希计算,得到第一哈希值。
即调用上述步骤S56编写的哈希函数接口对目标子Flash文件的第一内容进行哈希计算。
进一步的,在下载目标Flash程序中的主Flash文件之前,本发明实施例中方法还可以包括:
编写用于下载Flash文件的对象。
进一步的,在下载目标Flash程序中的主Flash文件之前,本发明实施例方法还包括:
编写回调函数接口,其中,该回调函数用于在上述目标子Flash文件下载完成时,执行对该目标子Flash文件的第一内容进行哈希计算,得到第一哈希值的步骤;
具体的,以回调函数swfcompleteHandler为例,当目标子Flash文件为一个子Flash文件时,编写回调函数接口具体如下:
其中,swfloader.contentLoaderInfo.bytes表示目标子SWF文件中的第一内容,swfloader.contentLoaderInfo.bytesTotal表示目标子SWF文件的第一内容的大小。Md5reuslt则表示目标子SWF文件的第一内容MD5的计算结果。
此时,上述编写用于下载Flash文件的对象的步骤,具体包括:
(1)定义一个用于下载Flash文件的实例;
由于Flash文件主要由ActionScript代码编写,因此,定义一个用于下载Flash文件的实例可以是:定义一个ActionScript的组件Loader,用于下载Flash文件,具体如下:
private var swfloader:Loader=new Loader();
(2)定义一个检测目标子Flash文件下载完成的注册事件。
其中,该注册事件在所述目标子Flash文件下载完成时,触发上述回调函数的执行。
本发明实施例中对下载的目标子Flash注册一个事件,用来感知到目标子Flash是否下载完成,在下载完成后会触发上述编写swfcompleteHandler函数的执行。该注册事件一个实施例如下:
swfloader.contentLoaderInfo.addEventListener(Event.COMPLETE,swfcompleteHandler);
在本发明的一些实施例中,在第一比对结果为正确时,可以进一步验证目标子Flash文件的正确性,然后决定是否在目标Flash程序中加载所述目标子Flash文件,此时,如图7所示,本发明实施例中方法还可以包括:
S57、对目标子Flash文件的第二内容进行哈希计算,得到第三哈希值;
其中,第二内容可以包括目标子Flash文件名称、计算目标子Flash文件部分文件的偏移值(offset),计算目标子Flash文件部分文件的计算大小(size)。
本发明实施例中,对目标子Flash文件的第二内容进行哈希计算,得到第三哈希值,可以是在接收到服务器下发指令后执行的步骤,此时该指令中可以包括第二内容的定义,例如目标子Flash文件名称、计算目标子Flash文件部分文件的偏移值(offset),计算目标子Flash文件部分文件的计算大小(size)等。
该第二内容与上述第一内容不同,例如当目标子Flash文件为一个子Flash文件,第一内容可以是目标子Flash文件的全部内容,第二内容可以目标子Flash文件的部分内容,这样先针对目标子Flash文件全部内容进行验证,再针对部分内容进一步验证可以提高安全性。
S58、将第三哈希值发送到所述服务器;
S59、接收服务器发送的第二比对结果;
其中,该第二比对结果为服务器计算目标子Flash文件的第二内容对应的第四哈希值,并比对第三哈希值和所述第四哈希值得到的所述目标子Flash文件的是否正确的结果;
此时,步骤S55可以进一步包括:
在第一比对结果为正确,且第二比对结果为正确时,在目标Flash程序中加载目标子Flash文件。
这样,经过第二比对结果的再次验证后,可以提高目标子Flash文件判断准确度,进一步提高安全性。
下面介绍本发明实施例中安全加载Flash文件的装置的实施例,该装置同样应用于用户终端。
请参阅图8,为本发明实施例中安全加载Flash文件的装置的一个实施例示意图,该装置包括:
下载单元801,用于在下载目标Flash程序中的主Flash文件后,通过所述主Flash文件从服务器下载目标子Flash文件,所述目标子Flash文件包括所述目标Flash程序中除主Flash文件之外的至少一个子Flash文件;
计算单元802,用于对所述目标子Flash文件的第一内容进行哈希计算,得到第一哈希值;
发送单元803,用于将所述目标子Flash文件的文件名和所述第一哈希值发送到所述服务器;
接收单元804,用于接收所述服务器发送的第一比对结果,所述第一比对结果为所述服务器根据所述目标子Flash文件的文件名,计算所述目标子Flash文件的第一内容对应的第二哈希值,并比对所述第一哈希值和所述第二哈希值得到的所述目标子Flash文件的是否正确的结果;
加载单元805,用于在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
进一步的,如图9所示,所述装置还包括:
哈希函数编写单元806,用于在下载目标Flash程序中的主Flash文件之后,对所述目标子Flash文件的第一内容进行哈希计算,得到第一哈希值的步骤之前,在所述主Flash文件中编写校验数据的哈希函数接口;
所述计算单元802具体用于:调用预先编写的校验数据的哈希函数接口,对所述目标子Flash文件的第一内容进行哈希计算,得到第一哈希值。
进一步的,如图10所示,所述装置还包括:
下载对象编写单元807,用于在下载目标Flash程序中的主Flash文件之前,编写用于下载Flash文件的对象。
进一步的,如图11所示,所述装置还包括:
回调函数编写单元808,用于在下载目标Flash程序中的主Flash文件之前,编写回调函数接口,所述回调函数用于在所述目标子Flash文件下载完成时,执行对所述目标子Flash文件的第一内容进行哈希计算,得到第一哈希值的步骤;
所述下载对象编写单元807具体用于:
定义一个用于下载Flash文件的实例;
定义一个检测所述目标子Flash文件下载完成的注册事件,所述注册事件在所述目标子Flash文件下载完成时,触发所述回调函数的执行。
进一步的,所述计算单元802还用于对所述目标子Flash文件的第二内容进行哈希计算,得到第三哈希值,所述第二内容与所述第一内容不同;
所述发送单元803还用于将所述第三哈希值发送到所述服务器;
所述接收单元804还用于接收所述服务器发送的第二比对结果,所述第二比对结果为所述服务器计算所述目标子Flash文件的第二内容对应的第四哈希值,并比对所述第三哈希值和所述第四哈希值得到的所述目标子Flash文件的是否正确的结果;
所述加载单元805具体用于:
在所述第一比对结果为正确,且所述第二比对结果为正确时,才在所述目标Flash程序中加载所述目标子Flash文件。
本发明实施例中用户终端侧的安全加载Flash文件的方法和服务器侧安全加载Flash文件的方法可相互参照,在一侧未描述到的部分可参照另一侧方法。同理用户终端侧的安全加载Flash文件的装置和服务器侧安全加载Flash文件的装置也可以相互参照,此处不做限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种安全加载Flash文件的方法,其特征在于,应用于服务器,所述方法包括:
在接收到用户终端发送的下载目标子Flash文件的请求后,向所述用户终端发送所述目标子Flash文件,所述目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
接收所述用户终端发送的所述目标子Flash文件的文件名和第一哈希值,所述第一哈希值为所述用户终端根据所述目标子Flash文件的第一内容进行哈希计算得到的;
根据所述目标子Flash文件的文件名查找所述目标子Flash文件,并根据所述目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果;
将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件;
接收所述用户终端发送的第三哈希值,所述第三哈希值为所述用户终端根据所述目标子Flash文件的第二内容进行哈希计算得到的,所述第二内容与所述第一内容不同;
根据所述目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
比对所述第三哈希值和所述第四哈希值,得到第二比对结果;
所述将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件包括:
将所述第二比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确,且所述第二比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
2.根据权利要求1所述的方法,其特征在于,在所述接收所述用户终端发送的第三哈希值之前,所述方法还包括:
向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
3.根据权利要求2所述的方法,其特征在于,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。
4.根据权利要求1所述的方法,其特征在于,所述比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果的步骤,包括:
比对所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值相同,则所述第一比对结果为所述目标子Flash文件正确;
若所述第一哈希值和所述第二哈希值不相同,则所述第一比对结果为所述目标子Flash文件错误。
5.一种安全加载Flash文件的装置,其特征在于,应用于服务器,所述装置包括:
发送单元,用于在接收到用户终端发送的下载目标子Flash文件的请求后,向所述用户终端发送所述目标子Flash文件,所述目标子Flash文件包括目标Flash程序中除主Flash文件外的至少一个子Flash文件;
接收单元,用于接收所述用户终端发送的所述目标子Flash文件的文件名和第一哈希值,所述第一哈希值为所述用户终端根据所述目标子Flash文件的第一内容进行哈希计算得到的;
哈希计算单元,用于根据所述目标子Flash文件的文件名查找所述目标子Flash文件,并根据所述目标子Flash文件的第一内容进行哈希计算,得到第二哈希值;
比对单元,用于比对所述第一哈希值和所述第二哈希值,得到所述目标子Flash文件是否正确的第一比对结果;
反馈单元,用于将所述第一比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件;
所述接收单元还用于接收所述用户终端发送的第三哈希值,所述第三哈希值为所述用户终端根据所述目标子Flash文件的第二内容进行哈希计算得到的,所述第二内容与所述第一内容不同;
所述哈希计算单元还用于根据所述目标子Flash文件的第二内容进行哈希计算,得到第四哈希值;
所述比对单元还用于比对所述第三哈希值和所述第四哈希值,得到第二比对结果;
所述反馈单元还具体用于将所述第二比对结果返回给所述用户终端,以使得所述用户终端在所述第一比对结果为正确,且所述第二比对结果为正确时,在所述目标Flash程序中加载所述目标子Flash文件。
6.根据权利要求5所述的装置,其特征在于,
所述发送单元还用于在所述接收所述用户终端发送的第三哈希值之前,向所述用户终端发送进一步校验所述目标子Flash文件的指令,以使得所述用户终端根据所述指令,对所述目标子Flash文件的第二内容进行哈希计算,得到所述第三哈希值。
7.根据权利要求6所述的装置,其特征在于,所述指令中包括发送给所述用户终端的第一数值和第二数值,所述第一数值为所述第二内容在所述目标子Flash文件的起始地址,所述第二数值为所述第二内容在所述所述目标子Flash文件的的长度。
8.根据权利要求5所述的装置,其特征在于,所述比对单元具体用于:
比对所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值相同,则所述第一比对结果为所述目标子Flash文件正确;
若所述第一哈希值和所述第二哈希值不相同,则所述第一比对结果为所述目标子Flash文件错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206792.1A CN107085692B (zh) | 2017-03-31 | 2017-03-31 | 一种安全加载Flash文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206792.1A CN107085692B (zh) | 2017-03-31 | 2017-03-31 | 一种安全加载Flash文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107085692A CN107085692A (zh) | 2017-08-22 |
CN107085692B true CN107085692B (zh) | 2019-10-25 |
Family
ID=59614672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710206792.1A Active CN107085692B (zh) | 2017-03-31 | 2017-03-31 | 一种安全加载Flash文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107085692B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127860B (zh) * | 2019-12-30 | 2023-10-20 | Oppo广东移动通信有限公司 | 可执行文件的检测方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170414A (zh) * | 2007-12-11 | 2008-04-30 | 刘彤 | 一种分布式环境下文件内容防篡改的方法 |
CN102325167A (zh) * | 2011-07-21 | 2012-01-18 | 杭州微元科技有限公司 | 一种网络文件传输的校验方法 |
CN104954353A (zh) * | 2015-02-10 | 2015-09-30 | 腾讯科技(深圳)有限公司 | Apk文件包的校验方法和装置 |
CN102982258B (zh) * | 2012-11-09 | 2016-03-16 | 北京深思数盾科技有限公司 | 一种对移动应用程序进行原版校验的系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10129556B2 (en) * | 2014-05-16 | 2018-11-13 | Bevara Technologies, Llc | Systems and methods for accessing digital data |
-
2017
- 2017-03-31 CN CN201710206792.1A patent/CN107085692B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170414A (zh) * | 2007-12-11 | 2008-04-30 | 刘彤 | 一种分布式环境下文件内容防篡改的方法 |
CN102325167A (zh) * | 2011-07-21 | 2012-01-18 | 杭州微元科技有限公司 | 一种网络文件传输的校验方法 |
CN102982258B (zh) * | 2012-11-09 | 2016-03-16 | 北京深思数盾科技有限公司 | 一种对移动应用程序进行原版校验的系统 |
CN104954353A (zh) * | 2015-02-10 | 2015-09-30 | 腾讯科技(深圳)有限公司 | Apk文件包的校验方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107085692A (zh) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
CN107770154B (zh) | 基于云存储的区块链可靠数据存储方法、终端及系统 | |
TWI734088B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
CN104751049B (zh) | 一种应用程序安装方法及移动终端 | |
CN107122661B (zh) | 一种安全加载Flash文件的方法及装置 | |
CN106155742B (zh) | 组件更新处理方法及装置 | |
CN105262589B (zh) | 数据安全校验方法、装置及校验设备 | |
CN108229107B (zh) | 一种Android平台应用程序的脱壳方法及容器 | |
CN109088902B (zh) | 注册方法及装置、认证方法及装置 | |
CN104699511B (zh) | 插件升级方法及装置 | |
CN108111464A (zh) | 一种数据校验方法及装置 | |
CN109214180B (zh) | 一种内存代码的校验方法及装置 | |
CN111090386B (zh) | 一种云存储方法、装置、系统和计算机设备 | |
CN111314437B (zh) | 资源包的下载方法和装置、存储介质及电子装置 | |
CN105208108B (zh) | Web环境下的文件上传/下载方法及系统、服务器、客户端 | |
CN108400955B (zh) | 一种网络攻击的防护方法及系统 | |
CN109063489A (zh) | 一种启动方法及装置 | |
CN107085692B (zh) | 一种安全加载Flash文件的方法及装置 | |
CN106203179B (zh) | 一种对文件的完整性校验系统及方法 | |
CN114266665B (zh) | 合约多主链跨链方法、设备和存储介质 | |
CN106934272B (zh) | 一种应用信息的校验方法和装置 | |
CN111353148A (zh) | 一种确定应用程序是否被重打包的方法及设备 | |
CN114371859A (zh) | 应用软件rasp程序更新方法、服务器、电子设备及存储介质 | |
CN109905366A (zh) | 终端设备安全验证方法、装置、可读存储介质及终端设备 | |
JP6174247B2 (ja) | ハッシュを利用したプログラムの無欠性検証方法 |
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 |