CN104539585B - 浏览器防注入的方法、浏览器客户端和装置 - Google Patents

浏览器防注入的方法、浏览器客户端和装置 Download PDF

Info

Publication number
CN104539585B
CN104539585B CN201410742770.3A CN201410742770A CN104539585B CN 104539585 B CN104539585 B CN 104539585B CN 201410742770 A CN201410742770 A CN 201410742770A CN 104539585 B CN104539585 B CN 104539585B
Authority
CN
China
Prior art keywords
browser
registration table
path
operating system
chained list
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.)
Expired - Fee Related
Application number
CN201410742770.3A
Other languages
English (en)
Other versions
CN104539585A (zh
Inventor
党壮
梁志辉
王天平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410742770.3A priority Critical patent/CN104539585B/zh
Publication of CN104539585A publication Critical patent/CN104539585A/zh
Priority to PCT/CN2015/094844 priority patent/WO2016086766A1/zh
Priority to US15/533,356 priority patent/US20190098045A1/en
Application granted granted Critical
Publication of CN104539585B publication Critical patent/CN104539585B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种浏览器防注入的方法,涉及浏览器技术领域。所述方法包括:复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。根据本发明的浏览器防注入方法,可以将浏览器使用的源LSP链表,转换为安全的第二LSP链表,如此避免浏览器向下发送的网络请求经过LSP链表中不安全的LSP节点的处理过程,由此解决了其他应用程序向浏览器注入不安全的LSP节点,以劫持浏览器的问题。

Description

浏览器防注入的方法、浏览器客户端和装置
技术领域
本发明涉及浏览器技术领域,具体涉及一种浏览器防注入的方法、一种浏览器客户端和一种带有浏览器客户端的装置。
背景技术
浏览器是指可以显示网页服务器或者文件***的HTML(超文本标记语言,HyperText Mark-up Language))文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL(统一资源定位符,Uniform Resource Locator)指定,文件格式通常为HTML。
在浏览器使用过程中,可能有其他程序向浏览器注入LSP(Layered ServiceProvider,分层服务提供商)节点,即注入LSP的动态链接库,而这些动态链接库的功能是在Winsock中对浏览器发送的网络请求进行处理,其可以对浏览器进行劫持,比如网络请求被重定向到不安全网页、收藏夹里自动反复添加不安全网站、IE选项卡中出现不能更改或被隐藏的项目、获取在网页中的登录名和密码等,因此,这些程序注入的动态链接库对于用户的浏览器来说并不安全。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器客户端和相应的浏览器防注入方法。
依据本发明的一个方面,提供了一种浏览器防注入的方法,包括:
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
优选地,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,还包括:
通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:
所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请 求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,还包括:
浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,包括:
所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径包括:
所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
优选地,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
优选地,所述将当前浏览器的网络请求通过所述第二分层服务提供商链表传输包括:
通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
依据本发明的另外一个方面,还公开了一种浏览器客户端,包括:
网络组件,其配置为发起向服务器发送的网络请求;
防注入组件,具体包括:
链表复制模组,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实 现各分层服务提供商接口并返回空值;
请求控制模组,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,所述链表转换模组包括:
源节点身份查找模组,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
源节点转换模组,其配置为将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述源节点转换模组包括:
第一转换模组,其配置为所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述的浏览器客户端,还包括:
服务安装模组,其配置为浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,所述第一转换模组包括:
向外发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,。
优选地,所述服务安装模组包括:
第一安装模组,其配置为获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述第一转换模组之前还包括:
服务判断模组,其配置为判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,所述第一转换模组包括:
请求转换模组,其配置为所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二转换模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述第一转换模组还包括:
第一身份判断模组,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一身份判断模组,包括:
第一解析判断模组,其配置为解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
优选地,所述第一转换模组还包括:
第二身份判断模组,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第二身份判断模组包括:
I/O请求包接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
第二解析判断模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
优选地,所述请求控制模组包括:
第二链表加载模组,其配置为通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
依据本发明的另外一个方面,还公开了一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
发起向服务器发送的网络请求;
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
在获取到所述第一分层服务提供商链表后,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:
通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:
所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
根据本发明的浏览器防注入方法,可以将浏览器使用的源LSP链表,转换为安全的第二LSP链表,如此避免浏览器向下发送的网络请求经过LSP链表中不安全的LSP节点的处理过程,避免不安全的LSP节点对浏览器的劫持,由此解决了其他应用程序向浏览器注入不安全的LSP节点,以劫持浏览器的问题,取得了提高浏览器安全性的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认 为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图2示出了根据本发明一个实施例的另一种浏览器防注入的方法的流程示意图;
图3示出了根据本发明一个实施例的另一种浏览器防注入的方法的流程示意图;
图4示出了根据本发明一个实施例的另一种浏览器防注入的方法的流程示意图;
图5示出了根据本发明一个实施例的另一种浏览器防注入的方法的流程示意图;
图6示出了根据本发明一个实施例的另一种浏览器防注入的方法的流程示意图;
图7示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图8示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图9示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图10示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图11示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图12示出了根据本发明一个实施例的本发明一种浏览器客户端的结构示意图;
图13示出了根据本发明一个实施例的一种带有浏览器客户端的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤110,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
在实际应用中,其他应用程序可按照正常方式向浏览器注入LSP节点,即向 浏览器注入LSP的DLL(Dynamic Link Library,动态链接库),注入后会将LSP的DLL写入注册表中(比如写入注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parame ters的相应位置中),并将相关配置信息写入浏览器的源LSP链表的配置信息中,该配置信息中记录了上述dll的注册表位置等信息。那么,按照传统的方式,浏览器启动后,向外发送请求之前,会根据浏览器源LSP链表的配置信息加载源LSP链表,即加载LSP链表中各节点的dll,然后浏览器的网络请求会从源LSP链表中的第一个LSP节点开始,向下逐个通过LSP节点进行传输,直到传输到其他协议层,比如TCP/IP协议层。
但是本发明在浏览器的第一个网络请求发出之前,会首先对源LSP链表进行转换。首先即复制一份源LSP链表,比如将源LSP链表中的有序的dll文件复制一份,该复制版本作为第一LSP链表以备后续处理。
步骤120,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
将前述复制得到的第一LSP链表,可逐个判断所述第一LSP链表中的各个节点是否为不允许访问的源节点。其中,对源节点的判断可以通过节点的名称进行判断,比如一个LSP节点的名称为mswsock.dll,可以通过白名单或者说黑名单进行判断。比如将允许访问的源节点的名称写入白名单,那么第一LSP链表中的各节点不在白名单中时,即不允许访问,或者可以理解为不允许加载该LSP节点的dll。在本发明实施例中,可以只将***初始情况下默认的LSP节点名称写入白名单,当然还可以将其他安全的应用程序注入的LSP节点名称写入白名单,该白名单可以通过服务器进行更新。同理,也可以构建LSP节点的黑名单。
对于不允许访问的源节点,本发明实施例则将其转换为虚拟节点,即fake.dll,该虚拟的LSP节点可以实现LSP的所有接口,那么该虚拟节点的上一个节点传输的网络请求可以正常访问该虚拟节点,该虚拟节点对网络请求的不进行处理,即返回空值NULL,然后继续将网络请求向下传输。因此该虚拟节点不会产生网络请求发送的异常,导致不能上网等情况。那么在将不允许访问的源节点替换为前述虚拟节点后,即得到第二LSP链表。
步骤130,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
那么,对于浏览器的网络请求,即可控制其通过所述第二LSP链表进行传输。
在浏览器的网络请求向外传输过程中,其需要先通过LSP链表的处理,才能向下传输至通信协议层(比如TCP/IP层),然后再传输至外部,那么传统技术可 以向LSP链表中注入自定义的LSP节点,以对浏览器的网络请求进行劫持和处理,可能产生安全风险等问题。而本发明实施例中,无论其他应用程序如何注入LSP节点,本发明实施例中,在浏览器发送第一个网络请求之前,将***中包括应用程序注入的LSP节点的源LSP链表进行替换为第二LSP链表,其中将不需要访问的源节点替换为虚拟节点,完全不用理会有多少个应用程序注入了多少个LSP节点,也可保证浏览器下发的网络请求通过安全的LSP链表进行传输,提高了浏览器的安全性。
实施例二
参照图2,其示出了本发明另一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤210,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
比如源LSP链表为:A.dll—>B.dll—>C.dll—>D.dll,复制得到的第一LSP链表为A.dll—>B.dll—>C.dll—>D.dll。当然,本发明实施例中可以通过浏览器的源LSP链表的配置信息,查找注册表中记录的各源节点的路径,然后通过所述路径将源LSP链表的各个源节点进行复制。
步骤220,通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
由于第一LSP链表中的各个节点与源LSP链表的各节点完全一致,那么即可通过读取浏览器中源LSP链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息。在源LSP链表的配置信息中,一般存储了源节点的身份信息,比如对于每个节点记录的注册表项及记录的名称、顺序等信息,那么本发明实施例可以通过配置信息确定各个节点身份信息,比如其名称。比如上述例子中,可以获得各第一LSP链表中各个节点的身份信息按序为A、B、C、D。
步骤230,将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
在本发明实施例中,可以构建身份信息白名单或者身份信息黑名单,对所述各源节点的身份信息进行匹配。比如白名单中设置[A、D],那么将A、B、C、D分别与上述白名单进行匹配后,确定名称B、C的源节点不允许访问。
步骤240,将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表;
在本发明实施例中,可以预先设置虚拟节点,如fake.dll,存储与指定路径。
而源节点如果要使用,则需要通过注册表中对应的注册表项所记录的源节点路径去加载所述源节点,那么可将不允许访问的源节点在注册表中对应注册表项 的路径替换为虚拟节点的路径。
在本发明实施例中,可以针对所有不允许访问的源节点设置一个虚拟节点,将将不允许访问的源节点在注册表中对应注册表项的路径替换为该虚拟节点的路径,比如都替换为fake.dll的路径。当然,也可以根据确定的不允许访问的源节点个数,以初始设置的虚拟节点为蓝本,复制相应个数的虚拟节点,并将各个虚拟节点的文件名修改为不一样,比如前述例子有B、C两个节点,那么可以复制得到两个虚拟节点fake1.dll、fake2.dll,各自有一个路径,那么B.dll的注册表路径修改为fake1.dll的路径,C.dll的注册表路径修改为fake2.dll的路径。
如此,得到第二LSP链表,该链表的中允许加载的源节点保留,不允许加载的源节点即转换为了虚拟节点。
其中步骤220-240为实施例一的步骤120的优选地方式。
步骤250,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
得到第二LSP链表后,浏览器需要进行第一次网络请求传输前,则可以根据第二LSP链表进行加载,其网络请求即可通过第二LSP链表传输。
优选地,所述将当前浏览器的网络请求通过所述第二分层服务提供商链表传输包括:
子步骤251,通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
由于本发明实施例没有修改浏览器的源分层服务提供商链表的配置信息,只是修改了与配置信息对应的节点路径以及节点内容,浏览器根据原LSP链表的配置信息去获取相应的dll时,对于替换了路径的源节点配置信息,其会从其注册表项中记录的路径加载虚拟节点,最终即加载了第二LSP链表,并未加载不允许访问的真实的源节点的dll。
本发明实施例中,无论其他应用程序如何注入LSP节点,本发明实施例中,在浏览器发送第一个网络请求之前,将***中包括应用程序注入的LSP节点的源LSP链表进行替换为第二LSP链表,其中将不需要访问的源节点替换为虚拟节点,完全不用理会有多少个应用程序注入了多少个LSP节点,也可保证浏览器下发的网络请求通过安全的LSP链表进行传输,提高了浏览器的安全性。
实施例三
参照图3,其示出了本发明另一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤310,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
步骤320,通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
步骤330,将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
步骤340,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表;
在本发明实施例中,浏览器本身的权限级别较低,可以直接向当前操作***中的第一操作***服务发送注册表路径设置请求,以便述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径,转换为预先设置好的虚拟节点的路径,最终得到第二LSP链表。其中,所述注册表路径设置请求包括了不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径。
优选地,还包括,步骤S300,浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
在本发明实施例中,直接通过浏览器将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,由于浏览器是用户级的权限,其权限级别低,可能超出了***对权限的设置而不能执行上述转换。因此需要以服务的形式提升转换的权限。
那么本发明中,浏览器可以预先获取第一操作***服务的安装文件并进行安装,在重新启动后,所述服务即可随机启动。服务在操作***中的权限级别相对较高,其可以较少受限的执行上述操作。
当然,本发明实施例也可以在执行过程中判断第一操作***服务是否安装。即优选地,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务包括:
子步骤S301,判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
第一操作***服务也是一个进程,启动后其具有进程名等信息,那么浏览器可以查询操作***中当前启动的进程中是否有所述第一操作***服务的进程名,如果有,说明已经安装过第一操作***服务,反之,则还没有安装过所述第一操作***服务。
优选地,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到 所述当前操作***中的第一操作***服务,包括:
子步骤S302,获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
在实际中,所述第一操作***服务的安装文件还包括虚拟的设备级驱动程序,在安装时可以一并进行安装。在第一操作***服务不使用时不会通过其dll中的逻辑去调用所述虚拟的设备级驱动程序。
虚拟的设备级驱动程序属于内核级程序,其具有操作***的最高权限,因此对于源节点的替换,通过虚拟的设备级驱动可以更容易的执行。
子步骤S303,启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
第一操作***服务安装时会在***文件中生成一个dll文件,并将该dll的相关参数写入操作***服务的注册表中。同时,会将虚拟的设备级驱动程序的sys文件安装至操作***,并将sys文件的相关参数写入注册表中。操作***启动后,会启动第一操作***服务的exe文件,等待浏览器进程的通知。
优选地,所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径包括:
子步骤341,所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
在本发明实施例中,第一操作***服务会随***启动而启动,并一直维持运行,监听是否收到浏览器发送的请求,如果接收到浏览器发送的注册表路径设置请求,则会根据所述注册表路径设置请求创建I/O请求包(I/O Request Packet,IRP)下发至所述虚拟的设备级驱动。因为windows操作***从应用层向底层驱动传送指令是通过I/O请求包传输的。第一操作***服务调用本发明实施例中虚拟的设备级驱动,则标需要以所述设备级驱动为目构建IRP,然后将所述IRP下发至所述设备级驱动中。所述IRP包括控制所述设备级驱动将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径的指令,比如包括了不允许访问节点的注册表项信息,对应该不允许访问节点的虚拟节点的路径等信息。
子步骤342,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
所述虚拟的设备级确定程序接收到所述第一操作***服务下发的I/O请求包后,解析所述I/O请求包中的指令,得到不允许访问节点的注册表项信息,以及 对应该不允许访问节点的虚拟节点的路径信息,那么可以调用注册表修改函数,将该不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
其中,可以通过注册表修改函数RegSetValueEx()函数将该不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。RegSetValueEx()函数原型为:
RegSetValueEx(
HKEY hKey,//打开当前句柄,也可以是注册表五个根键之一
LPCTSTR lpValueName,//字符串类型指针,指向设置键值的值项名称
LPDWORD lpReserved,//保留置,通常为0
DWORD dwType,//要设置键值项数值的类型
const BYTE*lpData,//指向设置的数值所在的缓冲区指针,如果不想设置可设为NULL
DWORD cbData);//指定lpData数据的缓冲区的长度,以字节为单位。
通过上述方式,即可得到转换后的第二分层服务提供商链表。
在本发明实施例中第一操作***服务可以在浏览器安装时作为浏览器的一部分进程安装,作为浏览器的一个功能模块。
其中步骤340为实施例二的步骤240的优选实施方式。
步骤350,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
本发明实施例中,无论其他应用程序如何注入LSP节点,本发明实施例中,在浏览器发送第一个网络请求之前,将***中包括应用程序注入的LSP节点的源LSP链表进行替换为第二LSP链表,其中将不需要访问的源节点替换为虚拟节点,完全不用理会有多少个应用程序注入了多少个LSP节点,也可保证浏览器下发的网络请求通过安全的LSP链表进行传输,提高了浏览器的安全性。并且,本发明实施例通过第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到第二LSP链表,以内核级权限进行转换,避免了操作***对转换的权限限制而转换失败。
实施例四
参照图4,其示出了本发明另一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤410,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
步骤420,通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
步骤430,将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
步骤440,浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;
步骤450,所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表;
在本发明实施例中,浏览器本身没有设置第一操作***服务的功能,而独立于浏览器的第二应用程序具有设置第一操作***服务的功能,比如360安全卫士、360网盾等程序。那么浏览器可以通过预置的对外接口向独立的第二应用程序发送注册表路径设置请求,所述注册表路径设置请求包括了不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径。独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表。
其中步骤440-450为实施例二的步骤240的优选实施方式。
步骤460,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
本发明实施例中,无论其他应用程序如何注入LSP节点,本发明实施例中,在浏览器发送第一个网络请求之前,将***中包括应用程序注入的LSP节点的源LSP链表进行替换为第二LSP链表,其中将不需要访问的源节点替换为虚拟节点,完全不用理会有多少个应用程序注入了多少个LSP节点,也可保证浏览器下发的网络请求通过安全的LSP链表进行传输,提高了浏览器的安全性。并且,本发明实施例可以利用第三方应用程序的权限,通过第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到第二LSP链表,以内核级权限进行转换,避免了操作***对转换的权限限制而转换失败。
实施例五
参照图5,其示出了本发明另一种浏览器防注入的方法的流程示意图,具体可 以包括:
步骤510,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;。
步骤520,通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
步骤530,将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
步骤540,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求;
步骤550,第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,进入步骤552;如果所述注册表路径设置请求的发送方是指定浏览器,则进入步骤554;
步骤552,不进入后续处理;
步骤554,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加***资源的消耗,可以在第一操作***服务中设置浏览器的白名单。然后获取所述注册表路径设置请求的发送方的身份信息,与第一操作***服务中记录的浏览器白名单进行匹配,如果匹配不上,不进入防注入过程;如果匹配上,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息。
进一步的,所述第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
子步骤S5501,解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
那么将浏览器名与第一操作***服务中记录的浏览器名进行匹配,或者将浏览器的签名信息与第一操作***服务中记录的浏览器的签名信息进行匹配,如果匹配上,则认为所述注册表路径设置请求的发送方是指定浏览器,可以利用设备级驱动执行防注入功能。
步骤560,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表 修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表;
步骤570,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
实施例六
参照图6,其示出了本发明另一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤610,复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;。
步骤620,通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
步骤630,将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
步骤640,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求;
步骤650,所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
步骤660,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,进入步骤662;如果所述注册表路径设置请求的发送方是指定浏览器,则进入步骤664;
步骤662,不进入后续处理;
步骤664,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,得到转换后的第二分层服务提供商链表;
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加***资源的消耗,可以在虚拟的设备级驱动程序中设置浏览器的白名单。然后根据所述IRP包获取所述注册表路径设置请求的发送方的身份信息,与虚拟的设备级驱动程序中记录的浏览器白名单进行匹配,如果匹配上,不进入防注入过程;如果匹配不上,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息。
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
子步骤S6601,所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
浏览器会将注册表路径设置请求发送至第一操作***服务,第一操作***服务则会基于注册表路径设置请求包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息重新封装为IRP,再把IRP发送至所述设备级驱动程序。
子步骤S6602,解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
所述设备级驱动程序接收到第一操作***服务发送的I/O请求包,则会解析其中包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息,然后将将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
步骤670,控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
实施例七
参照图7,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件710,其配置为发起向服务器发送的网络请求;
防注入组件720,具体包括:
链表复制模组721,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组722,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
请求控制模组723,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
实施例八
参照图8,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件810,其配置为发起向服务器发送的网络请求;
防注入组件820,具体包括:
链表复制模组821,其配置为复制当前浏览器的源分层服务提供商链表,获 得第一分层服务提供商链表;
链表转换模组822,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;具体包括:
源节点身份查找模组8221,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组8222,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
源节点转换模组8223,其配置为将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
请求控制模组823,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,所述请求控制模组823包括:
第二链表加载模组,其配置为所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
实施例九
参照图9,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件910,其配置为发起向服务器发送的网络请求;
防注入组件920,具体包括:
链表复制模组921,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组922,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;具体包括:
源节点身份查找模组9221,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组9222,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
源节点转换模组9223,包括:
第一转换模组92231,其配置为所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
请求控制模组923,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,还包括:
服务安装模组,其配置为浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,所述第一转换模组包括:
向外发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述服务安装模组包括:
第一安装模组,其配置为获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述第一转换模组之前还包括:
服务判断模组,其配置为判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
优选地,第一转换模组包括:
请求转换模组,其配置为所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二转换模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
实施例十
参照图10,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件1010,其配置为发起向服务器发送的网络请求;
防注入组件1020,具体包括:
链表复制模组1030,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组1040,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;具体包括:
源节点身份查找模组1041,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组1042,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
第一转换模组1043,具体包括:
向外发送模组10431,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
请求控制模组1050,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
实施例十一
参照图11,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件1110,其配置为发起向服务器发送的网络请求;
防注入组件1120,具体包括:
链表复制模组1130,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组1140,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;具体包括:
源节点身份查找模组1141,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组1142,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
第一转换模组1143,具体包括:
第一身份判断模组11431,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送 方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则进入请求转换模组11432;
请求转换模组11432,其配置为根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二转换模组11433,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径
请求控制模组1150,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一身份判断模组,包括:
第一解析判断模组,其配置为解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
实施例十二
参照图12,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
网络组件1210,其配置为发起向服务器发送的网络请求;
防注入组件1220,具体包括:
链表复制模组1230,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组1240,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;具体包括:
源节点身份查找模组1241,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组1242,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
第一转换模组1243,具体包括:
请求转换模组12431,其配置为所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二身份判断模组12432,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注 册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则进入第二转换模组12433;
第二转换模组12433,其配置为调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径
请求控制模组1250,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第二身份判断模组包括:
I/O请求包接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
第二解析判断模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
实施例十三
参照图13,其示出了本发明一种带有浏览器客户端的装置的结构示意图。所述带有浏览器客户端的装置1300,具体可以包括:
处理1310,以及加载有多条可执行指令的存储器1320,所述多条指令包括执行以下步骤的方法:
发起向服务器发送的网络请求;
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
在获取到所述第一分层服务提供商链表后,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
控制所述网络请求通过所述第二分层服务提供商链表传输。
优选地,所述将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:
通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
优选地,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:
所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请 求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
当然所述多条指令还可包括执行前述实施例中的各种方法的步骤。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模组进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模组或单元或组件组合成一个模组或单元或组件,以及此外可以把它们分成多个子模组或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模组实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器防注入设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者浏览器客户端程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出转换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干浏览器客户端的单元权利要求中,这些浏览器客户端中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种浏览器防注入的方法,包括:
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
A2、如A1所述的方法,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:
通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
A3、如A2所述的方法,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:
所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
A4、如A3所述的方法,还包括:
浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
A5、如A3所述的方法,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,包括:
所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
A6、如A4所述的方法,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
A7、如A3所述的方法,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
A8、如A3所述的方法,所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径包括:
所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
A9、如A8所述的方法,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
A10、如A9所述的方法,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
A11、如A8所述的方法,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
A12、如A11所述的方法,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
A13、如A2所述的方法,所述将当前浏览器的网络请求通过所述第二分层服务提供商链表传输包括:
通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
本发明还公开了B14、一种浏览器客户端,包括:
网络组件,其配置为发起向服务器发送的网络请求;
防注入组件,具体包括:
链表复制模组,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
请求控制模组,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
B15、如B14所述的浏览器客户端,所述链表转换模组包括:
源节点身份查找模组,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
源节点转换确定模组,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
源节点转换模组,其配置为将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
B16、如B15所述的浏览器客户端,所述源节点转换模组包括:
第一转换模组,其配置为所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
B17、如B16所述的浏览器客户端,还包括:
服务安装模组,其配置为浏览器获取第一操作***服务的安装文件并进行安装,以 得到所述当前操作***中的第一操作***服务。
B18、如B16所述的浏览器客户端,所述第一转换模组包括:
向外发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,。
B19、如B17所述的浏览器客户端,所述服务安装模组包括:
第一安装模组,其配置为获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
B20、如B17所述的浏览器客户端,所述第一转换模组之前还包括:
服务判断模组,其配置为判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
B21、如B16所述的浏览器客户端,所述第一转换模组包括:
请求转换模组,其配置为所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二转换模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
B22、如B21所述的浏览器客户端,所述第一转换模组还包括:
第一身份判断模组,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
B23、如B22所述的浏览器客户端,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一身份判断模组,包括:
第一解析判断模组,其配置为解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
B24、如B21所述的浏览器客户端,所述第一转换模组还包括:
第二身份判断模组,其配置为在将所述不允许访问的源节点在注册表中的路径转换 为虚拟节点的路径之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
B25、如B24所述的浏览器客户端,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第二身份判断模组包括:
I/O请求包接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
第二解析判断模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
B26、如B15所述的浏览器客户端,所述请求控制模组包括:
第二链表加载模组,其配置为通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
本发明还公开了C27、一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
发起向服务器发送的网络请求;
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
在获取到所述第一分层服务提供商链表后,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
控制所述网络请求通过所述第二分层服务提供商链表传输。
C28、如C27所述的带有浏览器客户端的装置,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:
通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;
将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;
将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
C29、如C27或C28所述的带有浏览器客户端的装置,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:
所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。

Claims (23)

1.一种浏览器防注入的方法,包括:
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
其中,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
其中,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
控制当前浏览器的网络请求通过所述第二分层服务提供商链表传输。
2.如权利要求1所述的方法,其特征在于,还包括:
浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
3.如权利要求1所述的方法,其特征在于,所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,包括:
所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
4.如权利要求2所述的方法,其特征在于,所述浏览器获取第一操作 ***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
5.如权利要求1所述的方法,其特征在于,所述浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务,包括:
判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
6.如权利要求1所述的方法,其特征在于,所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径包括:
所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
7.如权利要求6所述的方法,其特征在于,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册 表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
8.如权利要求7所述的方法,其特征在于,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
9.如权利要求6所述的方法,其特征在于,在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,还包括:
所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;
如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;
如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
10.如权利要求9所述的方法,其特征在于,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器包括:
所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
11.如权利要求1所述的方法,其特征在于,所述将当前浏览器的网络请求通过所述第二分层服务提供商链表传输包括:
通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
12.一种浏览器客户端,包括:
网络组件,其配置为发起向服务器发送的网络请求;
防注入组件,具体包括:
链表复制模组,其配置为复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
链表转换模组,其配置为将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
其中,所述链表转换模组包括:源节点身份查找模组,其配置为通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;源节点转换确定模组,其配置为将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;源节点转换模组,其配置为将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
其中,所述源节点转换模组包括:第一转换模组,其配置为所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
请求控制模组,其配置为控制所述网络请求通过所述第二分层服务提供商链表传输。
13.如权利要求12所述的浏览器客户端,其特征在于,还包括:
服务安装模组,其配置为浏览器获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
14.如权利要求12所述的浏览器客户端,其特征在于,所述第一转换模组包括:
向外发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的 第二应用程序发送注册表路径设置请求;所述独立于浏览器的第二应用程序将所述注册表路径设置请求发送至当前操作***中的第一操作***服务,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
15.如权利要求13所述的浏览器客户端,其特征在于,所述服务安装模组包括:
第一安装模组,其配置为获取第一操作***服务的安装文件,通过所述第一操作***服务的安装文件安装所述第一操作***服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作***服务所在进程,以加载第一操作***服务的动态链接库;所述第一操作***服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
16.如权利要求13所述的浏览器客户端,其特征在于,所述第一转换模组之前还包括:
服务判断模组,其配置为判断所述第一操作***服务是否存在;如果所述第一操作***服务不存在,则获取第一操作***服务的安装文件并进行安装,以得到所述当前操作***中的第一操作***服务。
17.如权利要求12所述的浏览器客户端,其特征在于,所述第一转换模组包括:
请求转换模组,其配置为所述第一操作***服务接收到所述注册表路径设置请求,根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
第二转换模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
18.如权利要求17所述的浏览器客户端,其特征在于,所述第一转换模组还包括:
第一身份判断模组,其配置为在将所述不允许访问的源节点在注册表中 的路径转换为虚拟节点的路径之前,第一操作***服务判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则根据所述注册表路径设置请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
19.如权利要求18所述的浏览器客户端,其特征在于,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第一身份判断模组,包括:
第一解析判断模组,其配置为解析所述注册表路径设置请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
20.如权利要求17所述的浏览器客户端,其特征在于,所述第一转换模组还包括:
第二身份判断模组,其配置为在将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述注册表路径设置请求的发送方是否为指定浏览器;如果所述注册表路径设置请求的发送方不是指定浏览器,则不进入后续处理;如果所述注册表路径设置请求的发送方是指定浏览器,则调用注册表修改函数将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径。
21.如权利要求20所述的浏览器客户端,其特征在于,所述注册表路径设置请求包括所述浏览器的身份验证信息;
进一步的,所述第二身份判断模组包括:
I/O请求包接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作***服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
第二解析判断模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
22.如权利要求12所述的浏览器客户端,其特征在于,所述请求控制 模组包括:
第二链表加载模组,其配置为通过所述源分层服务提供商链表的配置信息,从注册表查找第二分层服务提供商链表各节点的动态链接库并进行加载。
23.一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
发起向服务器发送的网络请求;
复制当前浏览器的源分层服务提供商链表,获得第一分层服务提供商链表;
在获取到所述第一分层服务提供商链表后,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,得到转换后的第二分层服务提供商链表;所述虚拟节点实现各分层服务提供商接口并返回空值;
其中,将所述第一分层服务提供商链表中不允许访问的源节点转换为虚拟节点,包括:通过所述源分层服务提供商链表的配置信息,获得第一分层服务提供商链表的各源节点的身份信息;将所述各源节点的身份信息与预置的身份信息名单进行匹配,根据匹配结果确定不允许访问的源节点;将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
其中,所述将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径,包括:所述浏览器向当前操作***中的第一操作***服务发送注册表路径设置请求,以便所述第一操作***服务通过调用一虚拟的设备级驱动程序将所述不允许访问的源节点在注册表中的路径转换为虚拟节点的路径;
控制所述网络请求通过所述第二分层服务提供商链表传输。
CN201410742770.3A 2014-12-05 2014-12-05 浏览器防注入的方法、浏览器客户端和装置 Expired - Fee Related CN104539585B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410742770.3A CN104539585B (zh) 2014-12-05 2014-12-05 浏览器防注入的方法、浏览器客户端和装置
PCT/CN2015/094844 WO2016086766A1 (zh) 2014-12-05 2015-11-17 浏览器防注入的方法、浏览器客户端和装置
US15/533,356 US20190098045A1 (en) 2014-12-05 2015-11-17 Browser injection prevention method, browser client and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410742770.3A CN104539585B (zh) 2014-12-05 2014-12-05 浏览器防注入的方法、浏览器客户端和装置

Publications (2)

Publication Number Publication Date
CN104539585A CN104539585A (zh) 2015-04-22
CN104539585B true CN104539585B (zh) 2017-12-05

Family

ID=52855054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410742770.3A Expired - Fee Related CN104539585B (zh) 2014-12-05 2014-12-05 浏览器防注入的方法、浏览器客户端和装置

Country Status (3)

Country Link
US (1) US20190098045A1 (zh)
CN (1) CN104539585B (zh)
WO (1) WO2016086766A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539585B (zh) * 2014-12-05 2017-12-05 北京奇虎科技有限公司 浏览器防注入的方法、浏览器客户端和装置
GB201805429D0 (en) * 2018-04-03 2018-05-16 Palantir Technologies Inc Security system and method
CN108958949B (zh) * 2018-05-23 2023-04-14 平安科技(深圳)有限公司 应用程序的调用方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及***
CN102117286A (zh) * 2009-12-30 2011-07-06 北大方正集团有限公司 注册表***及运行方法
CN102981874A (zh) * 2012-11-15 2013-03-20 北京奇虎科技有限公司 计算机处理***和注册表重定向方法
CN102999354A (zh) * 2012-11-15 2013-03-27 北京奇虎科技有限公司 文件加载方法和装置
CN103077353A (zh) * 2013-01-24 2013-05-01 北京奇虎科技有限公司 主动防御恶意程序的方法和装置
CN103944757A (zh) * 2014-04-11 2014-07-23 珠海市君天电子科技有限公司 网络异常检测的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049340B2 (en) * 2004-07-08 2018-08-14 One Network Enterprises, Inc. System and computer program for a global transaction manager in a federated value chain network
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
CN101945084A (zh) * 2009-07-09 2011-01-12 精品科技股份有限公司 客户端网页浏览控管***及方法
US20110161395A1 (en) * 2009-12-24 2011-06-30 International Business Machines Corporation Synthetic transaction monitoring and management of scripts
US9166949B2 (en) * 2012-06-07 2015-10-20 Qlicket Inc. Method and system of managing a captive portal with a router
CN103905302B (zh) * 2012-12-28 2017-06-06 上海格尔软件股份有限公司 一种在使用虚拟网卡的Windows主机上绑定源IP的方法
CN104539585B (zh) * 2014-12-05 2017-12-05 北京奇虎科技有限公司 浏览器防注入的方法、浏览器客户端和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及***
CN102117286A (zh) * 2009-12-30 2011-07-06 北大方正集团有限公司 注册表***及运行方法
CN102981874A (zh) * 2012-11-15 2013-03-20 北京奇虎科技有限公司 计算机处理***和注册表重定向方法
CN102999354A (zh) * 2012-11-15 2013-03-27 北京奇虎科技有限公司 文件加载方法和装置
CN103077353A (zh) * 2013-01-24 2013-05-01 北京奇虎科技有限公司 主动防御恶意程序的方法和装置
CN103944757A (zh) * 2014-04-11 2014-07-23 珠海市君天电子科技有限公司 网络异常检测的方法和装置

Also Published As

Publication number Publication date
US20190098045A1 (en) 2019-03-28
WO2016086766A1 (zh) 2016-06-09
CN104539585A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104536981B (zh) 实现浏览器安全的方法、浏览器客户端和装置
Subramanian et al. Hands-On RESTful API Design Patterns and Best Practices: Design, develop, and deploy highly adaptable, scalable, and secure RESTful web APIs
EP3593254B1 (en) Editing a database during preview of a virtual web page
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
CN103324470B (zh) 一种Web***生成的方法和装置
CN110651252A (zh) 内容管理***扩展
US7937670B2 (en) Data sharing system, method and software tool
CN103036871B (zh) 浏览器应用插件支持装置和方法
CN108021614A (zh) 一种用于页面动态加载的方法及***
CN102999354B (zh) 文件加载方法和装置
CN107203555A (zh) 页面加载处理方法及装置
US20070067418A1 (en) Object oriented web application framework
CN106569856B (zh) 一种应用视图资源文件的加载方法和装置
Esposito Programming Microsoft ASP. net 4
CN102982091B (zh) 用于基于动态域的隔离的技术
CN104539584B (zh) 浏览器防注入方法、浏览器客户端和装置
CN104462879A (zh) 应用程序免Root运行控制方法与装置
KR20160058744A (ko) 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
CN102981874B (zh) 计算机处理***和注册表重定向方法
CN103136478B (zh) 一种终端应用的安全管理方法及***
Dauzon et al. Django: web development with Python
CN108829838A (zh) 一种账户信息批量处理方法及服务器
CN104539585B (zh) 浏览器防注入的方法、浏览器客户端和装置
Klauzinski et al. Mastering JavaScript Single Page Application Development
CN103577180A (zh) 数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171205

Termination date: 20211205