一种基于HTML5的跨域消息发送方法及装置与流程

文档序号:12493036阅读:218来源:国知局
一种基于HTML5的跨域消息发送方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种基于HTML5的跨域消息发送方法及装置。



背景技术:

近年来,基于第五代超文本标记语言(Hyper Text Mark-up Language 5,HTML5)的新特性消息发送(postMessage)方法进行跨域、跨窗口消息传递的网页应用日益增多,使消息传递更加便捷。然而基于HTML5的postMessage信息传递技术带来的潜在安全风险也不断显现。这是由于,在postMessage接口调用时,并不会执行传统基于浏览器的同源策略(Same-Origin Policy,SOP),即并不会要求消息发送端和消息接收端具有相同的域名、协议和端口,使得接收端理论上可以接收任何来源的消息,因此增加了跨域调用的风险。

为了增强跨域消息传递的安全性,目前常采用源参数校验(origin校验)机制,origin参数中包含了消息发送端的协议、主机和端口号等信息。origin校验机制可以在一定程度上确保消息请求来自于合法的发送方,但是,origin校验机制可以通过一定手段进行修改和绕过,origin参数也可以被篡改为任意内容,即存在恶意篡改的风险。对于消息接收端而言,理论上可以接收任意格式的消息,如果对于跨域传来的消息处理不当,便有导致跨站脚本攻击(CrossSite Scripting,XSS)攻击的风险,即可能执行消息中传来恶意脚本。因此,需要一种安全性更高的跨域消息传输方法。



技术实现要素:

本发明提供一种基于HTML5的跨域消息发送方法及装置,用以提高跨域消息发送的安全性。

本发明实施例提供一种基于第五代超文本标记语言HTML5的跨域消息发送方法,包括:

第一应用接收第二应用发送的跨域消息;

第一应用确定跨域消息中是否包含脚本文件;

若第一应用确定跨域消息中包含脚本文件,则将脚本文件发送给云端服务器;

第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理跨域消息。

可选地,将脚本文件发送给云端服务器之前,还包括:

检验跨域消息是否符合预设规则;预设规则包括以下至少之一:跨域消息的来源为设定范围内的访问者、跨域消息的数据格式符合接收应用的数据格式以及跨域消息中的脚本权限符合预设的访问权限;

若符合,则第一应用在确定跨域消息中包含的脚本文件时,将脚本文件发送给云端服务器

若不符合,则第一应用删除跨域消息。

可选地,第一应用接收第二应用发送的跨域消息之后,还包括:

第一应用将跨域消息发送给第一应用的安全控件;

检验跨域消息是否符合预设规则,包括:

第一应用的安全控件检测跨域消息是否符合预设规则;

将脚本文件发送给云端服务器,包括:

第一应用的安全控件将脚本文件发送给云端服务器。

可选地,第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理跨域消息,包括:

若检测结果为含有恶意脚本,则删除跨域消息;

若检测结果为可疑脚本文件且包含风险评级,则根据风险评级和预设处理规则处理跨域消息。

本发明实施例提供一种基于HTML5的跨域消息发送方法,包括:

云端服务器接收第一应用发送的脚本文件;脚本文件是第二应用发送给第一应用的跨域消息中的脚本文件;

云端服务器检测脚本文件中是否包含恶意脚本从而获取检测结果;

云端服务器将检测结果发送给第一应用,以使第一应用根据检测结果处理跨域消息。

可选地,云端服务器检测脚本文件中是否包含恶意脚本从而获取检测结果,包括:

云端服务器从恶意样本库中查找到与脚本文件一致的恶意脚本,则获得的检测结果为含有恶意脚本。

可选地,云端服务器检测脚本文件中是否包含恶意脚本从而获取检测结果,还包括:

若云端服务器未从恶意样本库中查找到与脚本文件中的脚本一致的脚本,则获取脚本文件的运行日志;

比较脚本文件的运行日志与恶意样本库中的各恶意脚本的运行日志;

若脚本文件的运行日志与恶意脚本的运行日志的相似度超过设定阈值,则确定脚本文件为可疑脚本文件并根据相似度确定脚本文件的风险评级。

本发明实施例提供一种基于HTML5的跨域消息发送装置,应用于第一应用中,包括:

接收模块,用于接收第二应用发送的跨域消息;

判断模块,用于确定跨域消息中是否包含脚本文件;

发送模块,用于当跨域消息中包含脚本文件时,将脚本文件发送给云端服务器;

处理模块,用于接收云端服务器对脚本文件的检测结果并根据检测结果处理跨域消息。

可选地,还包括:

安全控件,用于检验跨域消息是否符合预设规则;预设规则包括以下至少之一:跨域消息的来源为设定范围内的访问者、跨域消息的数据格式符合接收应用的数据格式以及跨域消息中的脚本权限符合预设的访问权限;

发送模块,具体用于当跨域消息符合预设规则且跨域消息中包含脚本文件时,将脚本文件发送给云端服务器;

处理模块,还用于当跨域消息不符合预设规则时,删除跨域消息。

可选地,包括:

处理模块,具体用于当检测结果为含有恶意脚本时,删除跨域消息;

当检测结果为可疑脚本文件且包含风险评级时,则根据风险评级和预设处理规则处理跨域消息。

本发明实施例提供一种基于HTML5的跨域消息发送的云端服务器,包括:

接收模块,用于接收第一应用发送的脚本文件;脚本文件是第二应用发送给第一应用的跨域消息中的脚本文件;

检测模块,用于检测脚本文件中是否包含恶意脚本从而获取检测结果;

发送模块,用于将检测结果发送给第一应用,以使第一应用根据检测结果处理跨域消息。

可选地,包括:

检测模块,具体用于从恶意样本库中查找到与脚本文件一致的恶意脚本,则获得的检测结果为含有恶意脚本。

可选地,包括:

检测模块,具体用于未从恶意样本库中查找到与脚本文件中的脚本一致的脚本时,获取脚本文件的运行日志;

比较脚本文件的运行日志与恶意样本库中的各恶意脚本的运行日志;

若脚本文件的运行日志与恶意脚本的运行日志的相似度超过设定阈值,则确定脚本文件为可疑脚本文件并根据相似度确定脚本文件的风险评级。

综上所述,本发明实施例提供了一种基于HTML5的跨域消息发送方法及装置,包括:第一应用接收第二应用发送的跨域消息;第一应用确定所述跨域消息中是否包含脚本文件;若第一应用确定所述跨域消息中包含脚本文件,则将脚本文件发送给云端服务器;第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理所述跨域消息。在本发明实施例公开的上述方案中,第一应用接收到第二应用发送的跨域消息后,并不直接接受此跨域消息,而是将其中的脚本文件发送到云端服务器,通过云端服务器对脚本文件的检测获取跨域消息中脚本文件的检测结果,再根据这个检测结果处理跨域消息,使得第一应用接受的跨域消息中包含恶意脚本的风险大大降低,从而增强了跨域消息发送的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种系统架构示意图;

图2为本发明实施例提供的一种基于HTML5的跨域消息发送方法流程示意图;

图3为本发明实施例提供的一种跨域消息发送流程示意图;

图4为本发明实施例提供的一种基于HTML5的跨域消息发送装置结构示意图;

图5为本发明实施例提供的一种基于HTML5的跨域消息发送的云端服务器结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种系统架构示意图,如图1所示,包括:第一应用101、第二应用102、云端服务器103,三者之间通过无线或有线的数据传输网络相连接。

第一应用101和第二应用102为属于不同网络域的应用,二者之间可以通过postMessage实现跨域消息传输。具体实施过程中,第一应用101和第二应用102可以是网页、窗口、客户端等采用HTML5的终端应用,第一应用101和第二应用102可以属于同一类应用,也可以属于不同的应用。

云端服务器103可以接收来自于终端应用的脚本文件并检测这些脚本文件中是否包含恶意脚本。具体实施过程中,云端服务器103除接收第一应用101的脚本文件外,还可以接收并检测来自于其它终端应用的脚本文件,云端服务器103可以是第一应用运营商自设的云端服务器,也可以是租用或合用的云端服务器。

图2为本发明实施例提供的一种基于HTML5的跨域消息发送方法流程示意图,如图2所示,包括以下步骤:

S201:第一应用接收第二应用发送的跨域消息;

S202:第一应用确定跨域消息中是否包含脚本文件;

S203:若第一应用确定跨域消息中包含脚本文件,则将脚本文件发送给云端服务器;

S204:云端服务器接收第一应用发送的脚本文件;

S205:云端服务器检测脚本文件中是否包含恶意脚本从而获取检测结果;

S206:云端服务器将检测结果发送给第一应用;

S207:第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理所述跨域消息。

具体实施过程中,上述第一应用的具体操作过程由安装在第一应用上的安全控件执行,而原始的第一应用只负责接收跨域消息,以及呈现跨域消息的处理结果。

在步骤S201的具体实施过程中,第二应用发送的跨域消息具体指的是第二应用通过postMessage发送的跨域消息。postMessage是HTML5提供的一种跨域消息发送方法,第一应用接收到采用postMessage发送的跨域消息时,关闭同源限制,直接接收此跨域消息。

在步骤S202的具体实施过程中,第二应用发送来的跨域消息可以是实时更新的数据,也可以是动态执行的脚本,当然也可以既包含数据又包含脚本,第一应用上安装的安全控件判断接受到的跨域消息中是否包含脚本文件,可选地,脚本文件既可以是一个脚本程序也可以是多个脚本程序。

在步骤S203的具体实施过程中,当跨域消息中包含脚本文件时,第一应用安装的安全控件从跨域消息中将脚本文件提取出来并发送给云端服务器。

可选地,第一应用在提取出脚本文件之前,还可以先对跨域消息进行安全分析,包括:检验跨域消息是否符合预设规则;预设规则包括以下至少之一:跨域消息的来源为设定范围内的访问者、跨域消息的数据格式符合接收应用的数据格式以及跨域消息中的脚本权限符合预设的访问权限;若符合,则第一应用在确定跨域消息中包含的脚本文件时,并述脚本文件发送给云端服务器;若不符合,则第一应用删除跨域消息。其中,预设规则根据实际应用需求可以由多种类型,但至少应该包括对消息来源域名或者消息格式的检测。跨域消息的来源为设定范围内的访问者具体指:第一应用在接收到跨域消息后,第一应用上的安全控件查看第二应用的域名是否位于预设的域名白名单中,即检测第二应用是否是被允许向第一应用发送跨域消息的应用,以及检测URL的格式是否符合约定格式,防止URL被人为伪造,此过程类似于现有的origin校验机制,若跨域消息的来源并非设定范围内的访问者,则删除此条跨域消息。跨域消息的数据格式符合接收应用的数据格式具体指的是第一应用只能处理符合规定格式的数据,此规定格式根据第一应用的实际处理数据种类而定,因此第一应用接收的安全的跨域消息中的数据必须为第一应用能够处理的类型,若跨域消息的数据格式并不符合接收应用的数据格式,则删除此条跨域消息。跨域消息中的脚本权限符合预设的访问权限具体指的是若跨域消息中包含了脚本,则检验跨域消息中各脚本所调用的第一应用的数据是否超过了此脚本的权限,例如,脚本运行时需调用第一应用的安全控件信息,则在安全分析时,检验此脚本是否有权限调用第一应用的安全控件信息,若此脚本并没有调用此信息的权限,则认为此脚本为恶意脚本并删除此脚本所属的跨域消息。可选地,除了上述三种规则限定外,还可以根据实际情况添加其它限定,如对跨域消息的编码进行限制、对跨域消息的身份采用如验证令牌(token)的方式进行进一步验证等。当跨域消息经第一应用的安全控件检测无异常后,再从跨域消息中提取出脚本文件并发送给云端服务器。

在发送给云端服务器之前先对跨域消息进行安全分析,可以减轻云端服务器的工作压力,节省服务器资源,同时,还可以在最短的时间内发现非法跨域消息。

在步骤S204的具体实施过程中,云端服务器会接收第一应用发送的脚本文件,可选地,云端服务器还会接收其它应用发送的脚本文件,即,云端服务器同时服务于多个应用的脚本检测,这样可以提高云端服务器的资源利用率。

在步骤S205的具体实施过程中,云端服务器负责检测脚本文件是否包含恶意脚本。可选地,所述云端服务器从恶意样本库中查找到与所述脚本文件一致的恶意脚本,则获得的检测结果为含有恶意脚本。云端服务器获取脚本文件,并检测脚本文件中的脚本是否在其存储的恶意样本库中,若在恶意样本库中检测到了脚本文件中的脚本,则认为此脚本文件包含了恶意脚本。可选地,对于包含了多个脚本的脚本文件,分别检测各脚本文件是否位于恶意样本库,若有一个脚本位于恶意样本库中,则认为此脚本文件包含了恶意脚本。可选地,利用脚本文件中的脚本的哈希(hash)特征值检测其是否存储于恶意样本库,恶意样本库存储着多种恶意脚本的hash特征值,采用hash特征值检测可以加快检测效率,此外,采用hash特征值存储可以节省存储空间,从而使云端服务器能够存储更多的恶意脚本样本,而且还可以加强云端服务器存储的数据的安全性,防止被破解。

可选地,若云端服务器未从恶意样本库中查找到与脚本文件中的脚本一致的脚本,则获取脚本文件的运行日志;比较脚本文件的运行日志与恶意样本库中的各恶意脚本的运行日志;若脚本文件的运行日志与恶意脚本的运行日志的相似度超过设定阈值,则确定脚本文件为可疑脚本文件并根据相似度确定脚本文件的风险评级。具体实施过程中,云端服务器是利用沙箱环境还获取脚本文件中的脚本的运行日志的。沙箱环境是一种虚拟的系统程序,允许脚本程序在沙箱环境中运行,但其运行后对系统产生的变化会被删除,借用沙箱环境变可以获取脚本文件的运行日志。可选地,当脚本文件由多个脚本组成时,分别获取各个脚本的运行日志。恶意样本库中还存储有多种恶意脚本的运行日志,将脚本文件的运行日志与恶意样本库中多种恶意脚本的运行日志相比对,以获取其相似度。可选地,当脚本文件包含多个脚本时,则分别获取各个脚本的相似度。可选地,比对的因素包括但不仅限于脚本的执行结果、对接收应用的影响以及网络请求情况。当相似度超过预设阈值时,则确定脚本文件为可疑脚本,例如,预设阈值为0.5,当脚本文件与恶意样本库中某个恶意脚本的相似度超过0.5时,便认为此脚本文件包括了恶意脚本;可选地,对于包含多个脚本的脚本文件,只要其中有一个脚本与恶意样本库中的某个恶意脚本的相似度超过预设阈值,便认为此脚本文件包含了恶意脚本。根据相似度确定脚本文件的风险评级,具体指的是,根据相似度的不同,划分多个风险等级,如相似度0.8-1的相似度对应的风险等级为高危级别、0.5-0.7的相似度对应的风险等级为中危级别,低于0.5的相似度对应的风险等级为安全级别,可选地,对于包含多个脚本的脚本文件,获取相似度最高的脚本的相似度作为脚本文件的相似度。

在步骤S206的具体实施过程中,云端服务器向第一应用发送的检测结果具体包括了两种情况,一种为云端服务器在恶意样本库中检测到了脚本文件中的脚本,则直接反馈脚本文件包括恶意脚本的检测结果,另一种为云端服务器没有在恶意样本库中检测到脚本文件中的脚本,则返回脚本文件的风险评级。

在步骤S207的具体实施过程中,第一应用安装的安全控件根据云端服务器返回的检测结果处理跨域消息。可选地,若接收到的检测结果为确定含有恶意脚本,则删除跨域消息;若接收到的检测结果为可疑脚本文件且包含风险评级,则根据所述风险评级和预设处理规则处理所述跨域消息,例如,若风险评级为安全级别,则安全控件控制第一应用呈现此跨域消息,若风险评级为中危级别,则安全控件控制第一应用只呈现脚本文件中风险等级低于预设阈值的脚本,若风险评级为高危级别,则直接删除此跨域消息。

图3为本发明实施例提供的一种跨域消息发送流程示意图,如图3所示,包括以下步骤:

S301:A站点页面通过postMessage向B站点网页发送跨域消息;

S302:B站点页面接受该消息并将其发送至预先安装的安全控件;

S303:安全控件根据B站页面预先设定的规则对传来的消息进行安全分析;

S304:对于消息中涉及到的脚本文件,安全控件将其上传至云端服务器;

S305:控件服务端检测脚本文件并反馈检测结果给B站页面的安全控件;

S306:安全控件根据反馈结果决定呈现或者删除该跨域消息。

需要指出的是,图3为了清楚反映出安全控件的作用而将B站页面和安全控件分开表示,此处的B站页面只具有接收和呈现跨域消息的作用,而在实际实施过程中,安全控件是安装于B站页面中的,因此实际实施过程中的B站页面即具有接收和呈现跨域消息的作用,又同时具有图3中安全控件的功能。通过上述过程,B站页面在呈现跨域消息之前,先对其进行了安全性的检测,从而大大降低了B站页面遭受攻击的风险。

综上所述,本发明实施例提供了一种基于HTML5的跨域消息发送方法,包括:第一应用接收第二应用发送的跨域消息;第一应用确定所述跨域消息中是否包含脚本文件;若第一应用确定所述跨域消息中包含脚本文件,则将脚本文件发送给云端服务器;第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理所述跨域消息。在本发明实施例公开的上述方案中,第一应用接收到第二应用发送的跨域消息后,并不直接接受此跨域消息,而是将其中的脚本文件发送到云端服务器,通过云端服务器对脚本文件的检测获取跨域消息中脚本文件的检测结果,再根据这个检测结果处理跨域消息,使得第一应用接受的跨域消息中包含恶意脚本的风险大大降低,从而增强了跨域消息发送的安全性。

基于相同的技术构思,本发明实施例还提供一种基于HTML5的跨域消息发送装置,该装置可执行上述方法实施例。图4为本发明实施例提供的一种基于HTML5的跨域消息发送装置结构示意图,如图4所示,装置400包括:接收模块401、判断模块402、发送模块403和处理模块404,其中:

接收模块401,用于接收第二应用发送的跨域消息;

判断模块402,用于确定跨域消息中是否包含脚本文件;

发送模块403,用于当跨域消息中包含脚本文件时,将脚本文件发送给云端服务器;

处理模块404,用于接收云端服务器对脚本文件的检测结果并根据检测结果处理跨域消息。

可选地,装置400还包括:

安全控件405,用于检验跨域消息是否符合预设规则;预设规则包括以下至少之一:跨域消息的来源为设定范围内的访问者、跨域消息的数据格式符合接收应用的数据格式以及跨域消息中的脚本权限符合预设的访问权限;

发送模块403,具体用于当跨域消息符合预设规则且跨域消息中包含脚本文件时,将脚本文件发送给云端服务器;

处理模块404,还用于当跨域消息不符合预设规则时,删除跨域消息。

可选地,包括:

处理模块404,具体用于当检测结果为含有恶意脚本时,删除跨域消息;

当检测结果为可疑脚本文件且包含风险评级时,则根据风险评级和预设处理规则处理跨域消息。

基于相同的技术构思,本发明实施例还提供一种基于HTML5的跨域消息发送的云端服务器,该云端服务器可执行上述方法实施例。图5为本发明实施例提供的一种基于HTML5的跨域消息发送的云端服务器结构示意图,如图5所示,云端服务器500包括:接收模块501、检测模块502和发送模块503,其中:

接收模块501,用于接收第一应用发送的脚本文件;脚本文件是第二应用发送给第一应用的跨域消息中的脚本文件;

检测模块502,用于检测脚本文件中是否包含恶意脚本从而获取检测结果;

发送模块503,用于将检测结果发送给第一应用,以使第一应用根据检测结果处理跨域消息。

可选地,包括:

检测模块502,具体用于从恶意样本库中查找到与脚本文件一致的恶意脚本,则获得的检测结果为含有恶意脚本。

可选地,包括:

检测模块502,具体用于未从恶意样本库中查找到与脚本文件中的脚本一致的脚本时,获取脚本文件的运行日志;

比较脚本文件的运行日志与恶意样本库中的各恶意脚本的运行日志;

若脚本文件的运行日志与恶意脚本的运行日志的相似度超过设定阈值,则确定脚本文件为可疑脚本文件并根据相似度确定脚本文件的风险评级。

综上所述,本发明实施例提供了一种基于HTML5的跨域消息发送方法及装置,包括:第一应用接收第二应用发送的跨域消息;第一应用确定所述跨域消息中是否包含脚本文件;若第一应用确定所述跨域消息中包含脚本文件,则将脚本文件发送给云端服务器;第一应用接收云端服务器对脚本文件的检测结果并根据检测结果处理所述跨域消息。在本发明实施例公开的上述方案中,第一应用接收到第二应用发送的跨域消息后,并不直接接受此跨域消息,而是将其中的脚本文件发送到云端服务器,通过云端服务器对脚本文件的检测获取跨域消息中脚本文件的检测结果,再根据这个检测结果处理跨域消息,使得第一应用接受的跨域消息中包含恶意脚本的风险大大降低,从而增强了跨域消息发送的安全性。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1