一种基于浏览器的插件运行方法和装置制造方法及图纸

技术编号:9738634 阅读:147 留言:0更新日期:2014-03-06 14:27
本发明专利技术公开了一种基于浏览器的插件运行方法和装置,其中的方法具体包括:在浏览器进程中截取ActiveX插件的创建请求;在浏览器进程中创建创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;代理对象用于实现真实ActiveX插件的所有接口;在沙箱中创建包装进程,并在包装进程中创建所述真实ActiveX插件的真实对象;截取浏览器对于所述代理对象的调用请求,并将所述调用请求传输至真实对象,由真实对象执行调用请求。本发明专利技术的代理对象能够实现真实ActiveX插件的所有接口,其能够适用于所有的ActiveX插件,而无需针对专门的ActiveX插件创建专门的代理对象,因此,本发明专利技术具有通用性好的优点。

【技术实现步骤摘要】
—种基于浏览器的插件运行方法和装置
本专利技术涉及计算机
,具体涉及一种基于浏览器的插件运行方法和装置。
技术介绍
所谓插件,其为一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。ActiveX插件技术是国际上通用的基于Windows平台的软件技术,许多软件都是采用此种方式开发,例如Flash动画播放插件、Microsoft Media Player插件、Adobe PDF阅读插件等。ActiveX插件通常为一些软件组件或对象,可以将其插入到网页中。当用户浏览到特定的网页时,浏览器会提示用户下载并安装ActiveX插件,经安装后ActiveX插件在浏览器中运行。由于ActiveX插件数量繁多,运行环境复杂,以及ActiveX插件的开放性,导致了 ActiveX插件平均质量较差,一旦出了问题,会导致浏览器不能使用,或者出现严重的安全问题。例如,在浏览器中安装了用于播放影片的ActiveX插件后,由于该ActiveX插件是一个DLL (动态链接库,Dynamic Link Library),该DLL被加载执行的时候很容易出错,而DLL出错也会影响到浏览器。由上述可知,浏览器常常会受到浏览器插件的影响,出现稳定性和安全性的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于浏览器的插件运行方法和装置。依据本专利技术的一个方面,提供了一种基于浏览器的插件运行方法,包括:在浏览器进程中截取ActiveX插件的创建请求;在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;所述代理对象用于实现真实ActiveX插件的所有接口 ;在沙箱中创建包装进程,并在所述包装进程中创建所述真实ActiveX插件的真实对象;截取浏览器对于所述代理对象的调用请求,并基于进程间通信方式将所述调用请求传输至所述真实对象,由所述真实对象执行所述调用请求;和/或基于进程间通信方式接收所述真实对象对于所述浏览器进程的回调请求,并依据所述回调请求调用所述浏览器进程,由所述浏览器进行执行所述回调请求。根据本专利技术的另一方面,提供了一种基于浏览器的插件运行装置,所述装置包括:第一截取模块,用于在浏览器进程中截取ActiveX插件的创建请求;第一创建模块,用于在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;所述代理对象用于实现真实ActiveX插件的所有接口 ;第二创建模块,用于在沙箱中创建包装进程,并在所述包装进程中创建所述真实ActiveX插件的真实对象;第二截取模块,用于截取浏览器对于所述代理对象的调用请求;调用处理模块,用于基于进程间通信方式将所述调用请求传输至所述真实对象,由所述真实对象执行所述调用请求;和/或回调处理模块,用于基于进程间通信方式接收所述真实对象对于所述浏览器进程的回调请求,并依据所述回调请求调用所述浏览器进程,由所述浏览器进行执行所述回调请求。根据本专利技术的一种基于浏览器的插件运行方法和装置可以在浏览器进程中创建真实ActiveX插件的代理对象,同时在沙箱中的包装进程中创建真实ActiveX插件的真实对象;这样,能够保证真实ActiveX插件的真实对象在沙箱中运行,其行为可以被沙箱控制,不会影响浏览器本身的安全性,同时由于真实ActiveX插件的真实对象在一个单独的包装进程中运行,即使该真实对象由于漏洞等问题引起包装进程崩溃也不会导致浏览器崩溃,因此能够提高浏览器的稳定性,从而能够提高用户的浏览体验;同时,本专利技术的代理对象能够实现真实ActiveX插件的所有接口,其能够适用于所有的ActiveX插件,而无需针对专门的ActiveX插件创建专门的代理对象,因此,本专利技术具有通用性好的优点。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种基于浏览器的插件运行方法的流程图;以及图2示出了根据本专利技术一个实施例的一种基于浏览器的插件运行装置的结构图。【具体实施方式】下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。专利技术人在实现本专利技术的过程中发现,在传统的实现方式下,ActiveX插件在浏览器进程中运行,而ActiveX插件的平均质量较差,例如有些ActiveX插件会有很多bug(漏洞);这样,当ActiveX插件由于bug崩溃的时候,就会导致整个浏览器进程崩溃,进而导致浏览器不可用;这样实际上的ActiveX插件中的漏洞,在用户看来是浏览器的安全问题,影响了用户的浏览体验。为了解决上述问题,本专利技术实施例在浏览器进程中截取ActiveX插件的创建请求,创建所述创建请求对应的代理对象,并将该代理对象返回给浏览器;同时在一个独立的沙箱中创建真实ActiveX插件,这样能够保证ActiveX插件在沙箱中运行,如果ActiveX插件在运行中出现问题,浏览器也不会受到影响,故能够提高浏览器的安全性。参照图1,示出了根据本专利技术一个实施例的一种基于浏览器的插件运行方法的流程图,具体可以包括:步骤101、在浏览器进程中截取ActiveX插件的创建请求;在实际应用中,当用户浏览到特定的网页时,浏览器可以提示用户下载并安装ActiveX插件以执行相应的插件功能(如播放功能、摄像头功能等等),而在用户执行安装ActiveX插件的操作的过程中,会产生相应的创建请求。在具体实现中,可以基于Hook (钩子)技术来截取所述创建请求。Windows系统是建立在事件驱动的机制上的,而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息(如本专利技术实施例中的创建请求)。在本专利技术的一种应用示例中,所述创建请求为API (应用程序编程接口,Application Programming Interface)函数 CoCreateInstance0步骤102、在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;所述代理对象用于实现真实ActiveX插件的所有接口 ;由于ActiveX插件的本质是COM(组件对象模型,Component Object Model)组件,COM组件规范提供了一种通用的调用约定,即通过接口操作对象,接口是一个指向一个调用地址表的指针。因此,代理对象只要依据COM组件规范实现真实ActiveX插件的所有接口,就能够实现整个真实ActiveX插件。例如,COM组件规范中,调用地址表当中的每一项都是一个接口函数的地址本文档来自技高网...

【技术保护点】
一种基于浏览器的插件运行方法,包括:在浏览器进程中截取ActiveX插件的创建请求;在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;所述代理对象用于实现真实ActiveX插件的所有接口;在沙箱中创建包装进程,并在所述包装进程中创建所述真实ActiveX插件的真实对象;截取浏览器对于所述代理对象的调用请求,并基于进程间通信方式将所述调用请求传输至所述真实对象,由所述真实对象执行所述调用请求;和/或基于进程间通信方式接收所述真实对象对于所述浏览器进程的回调请求,并依据所述回调请求调用所述浏览器进程,由所述浏览器进行执行所述回调请求。

【技术特征摘要】
1.一种基于浏览器的插件运行方法,包括: 在浏览器进程中截取ActiveX插件的创建请求; 在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象,并返回给浏览器;所述代理对象用于实现真实ActiveX插件的所有接口 ; 在沙箱中创建包装进程,并在所述包装进程中创建所述真实ActiveX插件的真实对象; 截取浏览器对于所述代理对象的调用请求,并基于进程间通信方式将所述调用请求传输至所述真实对象,由所述真实对象执行所述调用请求;和/或 基于进程间通信方式接收所述真实对象对于所述浏览器进程的回调请求,并依据所述回调请求调用所述浏览器进程,由所述浏览器进行执行所述回调请求。2.如权利要求1所述的方法,其特征在于,所述在包装进程中创建所述真实ActiveX插件的真实对象的步骤,包括:在包装进程中创建所述真实对象,所述真实对象用于实现第一调用地址表,其中,所述第一调用地址表包括所述真实ActiveX插件的接口 ; 所述在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象的步骤,包括:在浏览器进程中创建所述代理对象,所述代理对象用于实现第二调用地址表,其中,所述第二调用地址表包括所述真实ActiveX插件的接口,所述第二调用地址表中接口与所述第一调用地址表中接口具有对应关系。3.如权利要求2所述的方法,其特征在于,所述调用请求中携带有调用接口和传递参数; 则所述基于进程间通信方式将所述调用请求传输至所述真实对象的步骤,包括:基于进程间通信方式,将所述调用接口的标识、所述调用接口在所述第二调用地址表中的位置信息及所述传递参数,传输给所述真实对象,由所述真实对象在所述第一调用地址表中与所述调用接口在所述第二调用地址表中的位置信息相同的位置、获取与接收到的所述调用接口的标识相同的接口,并依据接收到的传递参数执行所获取的接口。4.如权利要求1或2或3所述的方法,其特征在于,所述基于进程间通信方式将所述调用请求传输至所述真实对象的步骤,包括: 对所述调用请求进行转译和编码,并将编码后数据通过管道传输至所述真实对象,由所述真实对象解码后调用所述代理对象的接口对应真实接口。5.如权利要求1或2或3所述的方法,其特征在于,所述基于进程间通信方式接收所述真实对象对于所述浏览器进程的回调请求的步骤,包括: 通过管道接收所述真实对象对于所述浏览器进程的回调请求,并依据解码后的回调请求调用所述浏览器进程。6.如权利要求1或2所述的方法,其特征在于,所述创建请求中携带有真实ActiveX插件的类标识符; 则在所述在浏览器进程中创建所述创建请求对应真实ActiveX插件的代理对象的步骤之前,所述方法还包括: 依据所述创建请求中携带的真实ActiveX插件的类标识符,判断计算机系统中是否安装了对应的真实ActiveX插件,若否,则执行所述在浏览器进程中创建所述创建请求对应真实ActiveX...

【专利技术属性】
技术研发人员:张聪孙晓骏
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1