实现浏览器调用本地业务组件的方法、装置及系统的制作方法

文档序号:9711394阅读:840来源:国知局
实现浏览器调用本地业务组件的方法、装置及系统的制作方法
【技术领域】
[0001]本申请涉及通信技术领域,尤其是涉及一种实现浏览器调用本地业务组件的方法、装置及系统。
【背景技术】
[0002]诸如NPAPI (Netscape Plugin Applicat1n Programming Interface,网景插件应用程序接口)等浏览器插件是用于在浏览器中执行外部应用程序的通用接口。其中,执行外部应用程序也可以称之为调用本地业务组件,所谓的调用本地业务组件可以是安装数字证书、删除数字证书、校验数字证书、获取网卡mac地址等本机环境信息等等。除NPAPI夕卜,目前常见的类似功能的浏览器插件还包括BHO (Browser Helper Ob ject,浏览器辅助对象)、Native Messaging (本地通讯)和 JS-Ctypes 等等。
[0003]然而上述浏览器插件也存在一些问题,具体如下:
[0004]虽然几乎全部桌面端的图形界面浏览器(除IE外)都支持NPAPI,但是,由于NPAPI设计之初没有考虑安全性,NPAPI插件编写不当会导致浏览器崩溃,甚至造成系统被恶意软件攻击;而且NPAPI插件不支持移动设备,目前已濒临被淘汰。目前最新的浏览器(例如chrome,Firefox等)大都不再支持NPAPI,届时将无法使用浏览器插件去获取本地信息及校验网站数字证书。ΒΗ0是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的交互接口(Interactive Interface),而且现在很多IE浏览器个性化工具都是利用ΒΗ0的来实现,但是,ΒΗ0只支持IE浏览器,应用受限。此外,谷歌与在其新的chrome浏览器中加入了一个新的本机通讯(NativeMessaging)接口,以替换掉原来的NPAPI。但是,目前Native Messaging只支持chrome浏览器,而且需要在浏览器中安装扩展。类似的,JS-Ctypes只支持Firefox浏览器,而且同样需要在浏览器中安装扩展。
[0005]因此,在NPAPI濒临淘汰而其他浏览器插件又不具备通用性的情况下,目前亟需一种通用性强且安全性好的可实现多数主流浏览器调用本地业务组件的方案。

【发明内容】

[0006]本申请实施例的目的在于提供一种实现浏览器调用本地业务组件的方法、装置及系统,以保证多数主流浏览器可调用本地业务组件的同时兼顾其安全性。
[0007]为达到上述目的,一方面,本申请实施例提供了一种实现浏览器调用本地业务组件的方法,包括以下步骤:
[0008]客户端接收浏览器端发起的基于跨域通信协议的连接请求;
[0009]所述客户端对所述连接请求进行合法性验证;
[0010]如果所述连接请求通过所述合法性验证,则所述客户端建立与所述浏览器端的基于所述跨域通信协议的通信连接,以供所述浏览器端调用本地业务组件之用。
[0011]另一方面,本申请实施例还提供了一种实现浏览器调用本地业务组件的装置,该装置为一客户端,其包括:
[0012]连接请求接收模块,用于接收浏览器端发起的基于跨域通信协议的连接请求;
[0013]合法性验证模块,用于对所述连接请求进行合法性验证;
[0014]连接控制模块,用于当所述连接请求通过所述合法性验证时,建立与所述浏览器端的基于所述跨域通信协议的通信连接,以供所述浏览器端调用本地业务组件之用。
[0015]再一方面,本申请实施例还提供了一种实现浏览器调用本地业务组件的系统,包括:
[0016]浏览器端,用于向客户端发起基于跨域通信协议的连接请求;
[0017]客户端,用于对所述连接请求进行合法性验证,如果所述连接请求通过所述合法性验证,则所述客户端建立与所述浏览器端的基于所述跨域通信协议的通信连接,以供所述浏览器端调用本地业务组件之用。
[0018]本申请实施例中,由于客户端支持跨域通信协议,而现有主流浏览器也大都支持跨域通信协议,因此客户端可与现有主流浏览器建立通信通道,从而在当前NPAPI濒临淘汰而其他浏览器插件又不具备通用性的情况下,提供了一种可使多数主流浏览器调用本地业务组件的通信方案,同时本申请实施例中,在与浏览器建立通信连接前,客户端对于浏览器的连接请求进行合法性验证,只有通过合法性验证的请求才能与其建立用于调用本地业务组件的通信连接,因此,本申请实施例同时还具备防止恶意网站利用客户端的功能,从而提高了浏览器调用本地业务组件的通信安全。
【附图说明】
[0019]此处所说明的附图用来提供对本申请实施例的进一步理解,构成本申请的一部分,并不构成对本申请实施例的限定。在附图中:
[0020]图1为本申请实施例的实现浏览器调用本地业务组件的方法的一个实施例的方法流程图;
[0021]图2为本申请实施例的实现浏览器调用本地业务组件的装置的一个实施例的逻辑结构图;
[0022]图3为本申请实施例的实现浏览器调用本地业务组件的系统的一个实施例的逻辑结构图。
【具体实施方式】
[0023]为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本申请实施例做进一步详细说明。在此,本申请实施例的示意性实施例及其说明用于解释本申请实施例,但并不作为对本申请实施例的限定。
[0024]下面结合附图,对本申请实施例的【具体实施方式】作进一步的详细说明。
[0025]参考图1所示,本申请实施例的实现浏览器调用本地业务组件的方法包括以下步骤:
[0026]步骤S101、客户端接收浏览器端发起的基于跨域通信协议的连接请求。当浏览器端需要调用本地业务组件时,其向客户端发起的基于WebSocket协议连接请求,客户端则对应接收该请求。其中,WebSocket协议是一种全双工通讯的网络技术,在WebSocket协议中,通信双方只需要做一个握手的动作,然后就可快速在通信双方之间形成了一条通信通道,通信双方之间就直接可以数据互相传送。而当前的主流浏览器(例如Chr0mel6+、IE10+、Firefoxll+、Safari6.0+,0peral2.10+,360 安全浏览器、360 极速浏览器、淘宝浏览器、搜狗浏览器、UC浏览器、猎豹浏览器、傲游浏览器等)均支持WebSocket协议。
[0027]需要明确的是,为了使多数主流浏览器可调用本地业务组件,本申请实施例的客户端与浏览器之间需要采用跨域通信协议,这里的跨域是指跨系统安全域。WebSocket协议是本申请实施例的优选,但本申请实施例也可以采用其他跨域通信协议(例如JS0NP协议、C0RS协议等)替代。但是,JS0NP协议对发送的数据包有大小限制,如果发送的数据长度超过限制,余下的数据会被截断。而采用C0RS协议时,客户端返回给服务器的数据头(Response header)中需加上一个特殊字段,但客户端无法主动给服务器发送消息,服务器必须不停向客户端查询是否有数据发送给自己才行。WebSocket协议则不存在上述两种协议的局限,从而可快速为通信双方建立双向通信通道。而且,使用WebSocket协议这种通信方式,即使在客户端崩溃时,网站也是无感知的,因为客户端可以在后台重启并继续服务,从而可以提升网站体验。
[0028]步骤S102、客户端对连接请求进行合法性验证;如果通过合法性验证,则执行步骤S103 ;否则,客户端断开与浏览器端的连接,以防止恶意网站利用客户端。本步骤中,合法性验证的目的在于防止恶意网站利用客户端,这样恶意网站就无法利用客户端获取本机的信息了,因而提高了通信安全性。本步骤中,合法性验证优选通过判断发起连接请求的浏览器端所对应的网站是否为网站白名单中的网站的验证方式。这是因为通常需要调用本地业务组件的网站相对较少,因此使用网站白名单验证可加快客户端的合法性验证的处理速度。当然,本步骤中,合法性验证也可采用其他方式,比如令牌(token)验证。令牌验证是用非对称加密算法加密的,只有合法的网站才能生成那个令牌,而令牌被修改后可以被客户端识别,从而拒绝连接。
[0029]步骤S103、当该连接请求通过合法性验证时,客户端建立与浏览器端的基于WebSocket协议的通信连接,以供浏览器端调用本地业务组件之用。建立通信连接后,浏览器端调用本地业务组件过程大致如下:
[0030]1)、浏览器端向客户端发送命令;
[0031]2)、客户端解析命令并分发给对应的本地业务组件;
[0032]3)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1