CN108989266B - 一种防止网页劫持的处理方法和客户端以及服务器 - Google Patents
一种防止网页劫持的处理方法和客户端以及服务器 Download PDFInfo
- Publication number
- CN108989266B CN108989266B CN201710400446.7A CN201710400446A CN108989266B CN 108989266 B CN108989266 B CN 108989266B CN 201710400446 A CN201710400446 A CN 201710400446A CN 108989266 B CN108989266 B CN 108989266B
- Authority
- CN
- China
- Prior art keywords
- hijacking
- http
- preventing
- dom
- dom node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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/563—Static detection by source code analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开一种防止网页劫持的处理方法和客户端以及服务器,用于实现网页上正常内容的显示,可以防止网页劫持。本发明实施例提供一种防止网页劫持的处理方法,包括:客户端向网站服务器发送HTTP访问请求;所述客户端接收所述网站服务器返回的HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签;所述客户端根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码;所述客户端通过所述防止HTTP劫持的脚本代码从DOM树上检测是否存在用于HTTP劫持的DOM节点;若存在所述用于HTTP劫持的DOM节点,所述客户端从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种防止网页劫持的处理方法和客户端以及服务器。
背景技术
随着互联网的发展,各种网络攻击层出不穷。一些网络运营商通过超文本传输协议(HyperText Transfer Protocol,HTTP)劫持的方式篡改用户正常访问的网页,插入广告或推广链接。而被HTTP劫持的网页主要存在如下危害:1)影响用户正常浏览网页的体验。2)在原网页上植入的内容不可控,运营商植入的低俗广告会影响业务自身品牌形象和用户口碑。3)可能导致业务不可用,运营商植入的内容可能会导致页面排版混乱,页面交互不可用,流程异常。4)存在信息泄漏的风险,网站(Web)前端与网站服务器(WebServer) 交互的所有数据都有泄漏风险。
现有技术中运营商要实施HTTP劫持,主要包括如下步骤:
1、标记HTTP连接。在众多的传输控制协议(Transmission Control Protocol,TCP)连接中,对应用层协议为HTTP的连接作标记,等待该连接的HTTP响应(Response)。
2、篡改HTTP Response,可通过网关或旁路设备获取数据包之后进行篡改。
3、将篡改后的数据包发送给用户。例如,常用的方法是抢先回包,将篡改的数据包抢在真正的数据包到达用户前发给用户,正常的数据包到达用户之后被丢弃,从而篡改成功。
为了对抗HTTP劫持,现有技术中采用的防止HTTP劫持的方法包括:超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)。
HTTPS是对HTTP协议加上安全传输层协议(Transport Layer SecurityProtocol,TLS)进行保护。HTTPS可以解决HTTP劫持,同时也能保护数据不会泄漏,业界使用的比例越来越大。现有技术中使用HTTPS时,只有全站都使用HTTPS才能有效防护,只要一个点使用了不安全的协议,例如文本标记语言(Hypertext Markup Language,HTML)、层叠样式表(Cascading Style Sheets,CSS)、网络脚本JavaScript使用了不安全的协议,仍就有可能被HTTP 劫持。使用HTTPS能防止篡改的同时,也能防止信息泄漏,标准通用,大多数平台都能支持。
现有技术中使用的HTTPS至少存在如下的缺陷:采用HTTPS需要网站服务端进行繁琐升级,导致网站服务器的性能有不同程度的降低。采用HTTPS 还会使客户端网页加载时间延长,甚至常因网速达不到要求使得网页加载失败而发生网页显示空白的现象。
发明内容
本发明实施例提供了一种防止网页劫持的处理方法和客户端以及服务器,用于实现网页上正常内容的显示,并且可以防止网页劫持。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种防止网页劫持的处理方法,包括:
客户端向网站服务器发送超文本传输协议HTTP访问请求;
所述客户端接收所述网站服务器返回的超文本标记语言HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签;
所述客户端根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码;
所述客户端通过所述防止HTTP劫持的脚本代码从文档对象模型DOM树上检测是否存在用于HTTP劫持的DOM节点;
若存在所述用于HTTP劫持的DOM节点,所述客户端从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点。
第二方面,本发明实施例提供一种防止网页劫持的处理方法,包括:
防劫持服务器获取防止HTTP劫持的脚本代码,并将所述防劫持服务器上拉取防止HTTP劫持的脚本代码到数据库中;
所述防劫持服务器向客户端返回所述防止HTTP劫持的脚本代码。
第三方面,本发明实施例提供一种防止网页劫持的处理方法,包括:
网站服务器接收客户端发送的超文本传输协议HTTP访问请求;
所述网站服务器根据所述HTTP访问请求向所述客户端发送超文本标记语言HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签。
第四方面,本发明实施例还提供一种客户端,包括:
发送模块,用于向网站服务器发送超文本传输协议HTTP访问请求;
接收模块,用于接收所述网站服务器返回的超文本标记语言HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签;
拉取模块,用于根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码;
检测模块,用于通过所述防止HTTP劫持的脚本代码从文档对象模型 DOM树上检测是否存在用于HTTP劫持的DOM节点;
打击处理模块,用于若存在所述用于HTTP劫持的DOM节点,从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点。
第五方面,本发明实施例还提供一种防劫持服务器,包括:
管理模块,用于获取防止HTTP劫持的脚本代码,并将所述防劫持服务器上拉取防止HTTP劫持的脚本代码到数据库中;
发送模块,用于所述防劫持服务器向客户端返回所述防止HTTP劫持的脚本代码。
第六方面,本发明实施例还提供一种网站服务器,包括:
接收模块,用于接收客户端发送的超文本传输协议HTTP访问请求;
发送模块,用于根据所述HTTP访问请求向所述客户端发送超文本标记语言HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签。
本申请的第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,客户端首先向网站服务器发送HTTP访问请求,客户端接收网站服务器返回的HTML源文件,HTML源文件中嵌入有防止HTTP 劫持的脚本标签,客户端然后根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,客户端通过防止HTTP劫持的脚本代码从DOM树上检测是否存在用于HTTP劫持的DOM节点,若存在用于HTTP 劫持的DOM节点,客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM 节点。本发明实施例中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的防止网页劫持的处理系统的组成结构示意图;
图2为本发明实施例提供的一种防止网页劫持的处理方法的流程方框示意图;
图3为本发明实施例提供的一种防止网页劫持的处理方法的流程方框示意图;
图4为本发明实施例提供的一种防止网页劫持的处理方法的流程方框示意图;
图5为本发明实施例提供的防止网页劫持的处理系统的一种应用场景示意图;
图6为本发明实施例提供的防止网页劫持的处理系统中各个网元之间的交互流程示意图;
图7为本发明实施例提供的网站HTML源码中嵌入防止HTTP劫持的JS 的一种应用场景示意图;
图8-a为本发明实施例提供的一种客户端的组成结构示意图;
图8-b为本发明实施例提供的一种客户端的组成结构示意图;
图9-a为本发明实施例提供的一种防劫持服务器的组成结构示意图;
图9-b为本发明实施例提供的另一种防劫持服务器的组成结构示意图;
图9-c为本发明实施例提供的另一种防劫持服务器的组成结构示意图;
图10-a为本发明实施例提供的一种网站服务器的组成结构示意图;
图10-b为本发明实施例提供的另一种网站服务器的组成结构示意图;
图11为本发明实施例提供的防止网页劫持的处理方法应用于终端的组成结构示意图;
图12为本发明实施例提供的防止网页劫持的处理方法应用于防劫持服务器的组成结构示意图;
图13为本发明实施例提供的防止网页劫持的处理方法应用于网站服务器的组成结构示意图。
具体实施方式
本发明实施例提供了一种防止网页劫持的处理方法和客户端以及服务器,用于实现网页上正常内容的显示,并且可以防止网页劫持。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明防止网页劫持的处理方法的一个实施例,具体可以应用于防止网页劫持的处理系统中,请参阅图1所示,本发明一个实施例提供的防止网页劫持的处理系统,可以包括:客户端、防劫持服务器和网站服务器。本发明实施例可以基于HTML DOM事件实现防HTTP劫持,针对运营商篡改HTTP 回包的方式,监听网页变化,如果网页引用了非法统一资源定位符(Uniform Resource Locator,URL),则网页被HTTP劫持,对网页被劫持部分进行隐藏显示处理,例如被劫持的是网页中的一部分内容,这部分即可能插入有广告等非法内容。本发明实施例中页面加载完成时,一次遍历DOM树的DOM节点,过滤出所有非法URL并对非法DOM节点进行隐藏显示打击处理。监听页面变化,对动态插入的DOM节点或DOM节点属性也进行检测和打击。本发明实施例提供的防止网页劫持的处理方法,无需用户参与,用户体验流畅。
首先从客户端一侧来介绍本发明实施例提供的一种防止网页劫持的处理方法,请参阅图2所示,主要包括如下步骤:
201、客户端向网站服务器发送HTTP访问请求。
在本发明实施例中,客户端是安装有浏览器的网站客户端,客户端和网站服务器之间可以建立传输控制协议(Transmission Control Protocol,TCP) 连接,客户端需要访问某个网站时,客户端向网站服务器发送HTTP访问请求。
202、客户端接收网站服务器返回的超文本标记语言(Hypertext MarkupLanguage,HTML)源文件,HTML源文件中嵌入有防止HTTP劫持的脚本标签。
在本发明实施例中,网站(web)服务器在HTML源文件中插入防止HTTP 劫持的脚本标签(JavaScript)。HTML源文件是存放在网站服务器上,执行在 web客户端。举例说明,在HTML源码中嵌入一段防止HTTP劫持的JS:<script type="text/javascript"src="https://aq.qq.com/v2/hijack/aq_dw_ob.js?v=1.1"></scri pt>。
203、客户端根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止 HTTP劫持的脚本代码。
在本发明实施例中,客户端接收到HTML源文件之后,加载该HTML源文件,从而获取到嵌入的防止HTTP劫持的脚本标签,客户端和防劫持服务器之间建立有通信链接,客户端可以从防劫持服务器上拉取防止HTTP劫持的脚本代码,防劫持服务器上存储有防止HTTP劫持的脚本代码。其中,防止HTTP劫持的脚本代码存储在防劫持服务器上,客户端获取到防止HTTP 劫持的脚本代码之后运行在浏览器上。
在本发明的一些实施例中,防止HTTP劫持的脚本代码,还包括:是否对HTTP劫持进行打击的指示消息。在本发明的一些实施例中,防止HTTP 劫持的脚本代码,还包括:网址白名单。其中,本发明实施例中还可以通过防止HTTP劫持的脚本代码设置一些参数,如是否设置网址白名单,是否进行打击等。举例说明,防止HTTP劫持的脚本代码可以包括:
var whiteDOMain=/^www\.163\.com$/i;
AQHijackReport.init({
whiteReg:whiteDOMain,//设置白名单
antiHijack:true//遇到被劫持是否隐藏打击
其中,whiteReg和antiHijack此项为非必须参数,具体可以应用场景配置是否配置,通过设置网址白名单和是否进行打击可以灵活配置。
204、客户端通过防止HTTP劫持的脚本代码从文档对象模型(Document ObjectModel,DOM)树上检测是否存在用于HTTP劫持的DOM节点。
在本发明实施例中,客户端上创建有DOM树,DOM是处理可扩展标志语言的标准编程接口。客户端在浏览器的网页上加载防止HTTP劫持的脚本代码,从而可以判断出DOM树中的所有DOM节点是否存在用于HTTP劫持的DOM节点。
在本发明的一些实施例中,步骤204客户端通过防止HTTP劫持的脚本代码从DOM树上检测是否存在用于HTTP劫持的DOM节点,包括:
A1、客户端在浏览器的网页上加载HTML源文件;
A2、客户端通过浏览器监听如下的DOM事件:DOM节点加载完成事件、动态插入DOM节点事件和动态改变DOM节点属性事件;
A3、客户端根据监听DOM事件的结果判断防止HTTP劫持的脚本代码配置的URL匹配规则是否匹配于DOM树上的DOM节点;
A4、客户端将不匹配于URL匹配规则的DOM节点确定为用于HTTP劫持的DOM节点。
其中,客户端的浏览器上加载有HTML源文件,客户端通过防止HTTP 劫持的脚本代码监听HTML的DOM节点加载完成事件(即 DOMContentLoaded)、动态插入DOM节点事件(即DOMNodeInserted)、动态改变DOM节点属性事件(即DOMAttrModified事件),通过防止HTTP劫持的脚本代码配置的URL匹配规则可以过滤出非法URL,对持有非法URL 的DOM节点进行隐藏处理,其中URL匹配规则可以根据网站服务器的资源的存储地址来配置。
进一步的,在本发明的一些实施例中,防止HTTP劫持的脚本代码,还包括:网址白名单;
在这种实现场景下,步骤A3客户端根据监听DOM事件的结果判断防止 HTTP劫持的脚本代码配置的URL匹配规则是否匹配于DOM树上的DOM节点,具体为:
A31、客户端判断DOM树上的所有DOM节点包括的URL是否属于URL 匹配规则中设置的URL,以及判断所有DOM节点包括的URL是否属于网址白名单中设置的URL。
在执行前述步骤A31的实现场景下,步骤A4客户端将不匹配于URL匹配规则的DOM节点确定为用于HTTP劫持的DOM节点,具体为:
A41、客户端将URL不属于URL匹配规则、且不属于网址白名单的DOM 节点确定为用于HTTP劫持的DOM节点。
其中,在业务方设置的网址白名单里的URL一定是合法的,合法的URL 不一定在业务方设置的白名单里,合法的URL是防止HTTP劫持的脚本代码里设置的URL和网址白名单中的URL的合集。
205、若存在用于HTTP劫持的DOM节点,客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM节点。
在本发明实施例中,通过前述步骤204的判断可知,若DOM树中用于 HTTP劫持的DOM节点,客户端从浏览器的网页上隐藏掉用于HTTP劫持的 DOM节点,通过对该DOM的隐藏打击,使得浏览器上的网页不显示被HTTP 劫持的内容,只显示网站服务器提供的内容。
在本发明的一些实施例中,防止HTTP劫持的脚本代码,还包括:是否对HTTP劫持进行打击的指示消息。在这种实现场景下,步骤205客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM节点,包括:
B1、客户端从防止HTTP劫持的脚本代码中确定是否需要对HTTP劫持进行打击;
B2、当指示消息指示需要对HTTP劫持进行打击时,客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM节点。
其中,客户端是否对用于HTTP劫持的DOM节点进行隐藏打击取决于防止HTTP劫持的脚本代码的具体配置,当指示消息指示不需要对HTTP劫持进行打击时,客户端可以对用于HTTP劫持的DOM节点不做任何处理。
在本发明的一些实施例中,除了执行前述实施例之外,本发明实施例提供的防止网页劫持的处理方法还包括:
C1、若存在用于HTTP劫持的DOM节点,客户端向防劫持服务器上报劫持信息。
其中,在步骤204执行之后,除了执行步骤205之外,若存在用于HTTP 劫持的DOM节点,客户端向防劫持服务器上报劫持信息。例如,客户端通过通用网关接口(CommonGateway Interface,CGI)向防劫持服务器上报劫持信息,防劫持服务器中的CGI接收到上报数据后,会进行入数据库处理,方便各方查询与分析,以便持续改进所存储的防止HTTP劫持的脚本代码。
通过前述实施例对本发明的举例说明可知,客户端首先向网站服务器发送HTTP访问请求,客户端接收网站服务器返回的HTML源文件,HTML源文件中嵌入有防止HTTP劫持的脚本标签,客户端然后根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,客户端通过防止HTTP劫持的脚本代码从DOM树上检测是否存在用于HTTP劫持的 DOM节点,若存在用于HTTP劫持的DOM节点,客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM节点。本发明实施例中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
前述实施例从客户端一侧对本发明实施例的方法进行了说明,接下来从防止劫持服务器的角度进行说明,请参阅图3所示,本发明实施例提供的方法可以包括如下步骤:
301、防劫持服务器获取防止HTTP劫持的脚本代码,并将防劫持服务器上拉取防止HTTP劫持的脚本代码到数据库中。
在本发明实施例中,防劫持服务器管理有数据库,防劫持服务器获取到防止HTTP劫持的脚本代码之后存储到该数据库中。
302、防劫持服务器向客户端返回防止HTTP劫持的脚本代码。
其中,防止HTTP劫持的脚本代码存储在防劫持服务器上,防劫持服务器可以根据客户端的请求向客户端发送防止HTTP劫持的脚本代码,客户端获取到防止HTTP劫持的脚本代码之后运行在浏览器上。
在本发明的一些实施例中,步骤302防劫持服务器向客户端返回防劫持服务器上拉取防止HTTP劫持的脚本代码之后,本发明实施例提供的方法还包括:
D1、防劫持服务器接收客户端检测到用于HTTP劫持的DOM节点时发送的劫持信息,并将劫持信息保存到数据库中。
其中,客户端向防劫持服务器上报劫持信息。例如,客户端通过CGI向防劫持服务器上报劫持信息,防劫持服务器中的CGI接收到上报数据后,会进行入数据库处理,方便各方查询与分析,以便持续改进所存储的防止HTTP 劫持的脚本代码。
在本发明的一些实施例中,除了执行前述实施例之外,本发明实施例提供的防止网页劫持的处理方法还包括:
E1、防劫持服务器在防止HTTP劫持的脚本代码设置网址白名单;和/或,
E2、防劫持服务器在防止HTTP劫持的脚本代码设置是否对HTTP劫持进行打击的指示消息。
其中,防止HTTP劫持的脚本代码,还包括:是否对HTTP劫持进行打击的指示消息。在本发明的一些实施例中,防止HTTP劫持的脚本代码,还包括:网址白名单。其中,本发明实施例中还可以通过防止HTTP劫持的脚本代码设置一些参数,如是否设置网址白名单,是否进行打击等。举例说明,防止HTTP劫持的脚本代码可以包括:
var whiteDOMain=/^www\.163\.com$/i;
AQHijackReport.init({
whiteReg:whiteDOMain,//设置白名单
antiHijack:true//遇到被劫持是否隐藏打击
其中,whiteReg和antiHijack此项为非必须参数,具体可以应用场景配置是否配置,通过设置网址白名单和是否进行打击可以灵活配置。
通过前述实施例对本发明的举例说明可知,客户端根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,该防劫持服务器可以向客户端提供防止HTTP劫持的脚本代码,使得客户端中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
前述实施例分别从客户端一侧和防劫持服务器一侧对本发明实施例的方法进行了说明,接下来从网站服务器的角度进行说明,请参阅图4所示,本发明实施例提供的方法可以包括如下步骤:
401、网站服务器接收客户端发送的HTTP访问请求。
在本发明实施例中,客户端需要访问某个网站时,客户端向网站服务器发送HTTP访问请求,网站服务器接收该HTTP访问请求。
在本发明的一些实施例中,步骤401网站服务器接收客户端发送的超文本传输协议HTTP访问请求之前,本发明实施例提供的方法还包括:
F1、网站服务器在HTML源文件中插入防止HTTP劫持的脚本标签。
其中,在本发明实施例中,网站服务器在HTML源文件中插入防止HTTP 劫持的脚本标签(JavaScript)。HTML源文件是存放在网站服务器上,执行在 web客户端。举例说明,在HTML源码中嵌入一段防止HTTP劫持的JS:<script type="text/javascript"src="https://aq.qq.com/v2/hijack/aq_dw_ob.js?v=1.1"></scri pt>。
402、网站服务器根据HTTP访问请求向客户端发送HTML源文件,HTML 源文件中嵌入有防止HTTP劫持的脚本标签。
在本发明实施例中,网站服务器中预先存储有嵌入有防止HTTP劫持的脚本标签的HTML源文件,网站服务器响应客户端的访问请求,向该客户端返回嵌入有防止HTTP劫持的脚本标签的HTML源文件。
通过前述实施例对本发明的举例说明可知,客户端首先向网站服务器发送HTTP访问请求,客户端接收网站服务器返回的HTML源文件,HTML源文件中嵌入有防止HTTP劫持的脚本标签。本发明实施例中网站服务器发送给客户端嵌入有防止HTTP劫持的脚本标签的HTML源文件,使得客户端中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的 DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
请参阅图5所示,为本发明实施例提供的防止网页劫持的处理系统的一种应用场景示意图。该技术方案中主要涉及到3个模块:客户端,网站服务器(即普通网站的WebServer)和防劫持服务器。网站服务器是提供某种互联网服务,防劫持服务器可提供特殊的防HTTP劫持服务。
客户端上设置有PC/mobile浏览器模块,拉取嵌入防HTTP劫持的HTML 文件、防HTTP劫持的JS(命名为hijack.js)。其中,防HTTP劫持的HTML源文件存储在普通网站的WebServer上,防HTTP劫持的JS存储在防劫持服务器上,但是他们都运行在浏览器模块中。运行时防HTTP劫持的JS检测静态和动态的DOM树节点,根据规则判断是否HTTP劫持,进行打击和上报数据。
普通网站的WebServer,作为该方案的接入方,仅需要修改HTML源文件,加入一条嵌入防HTTP劫持JS的语句<script type="text/javascript" src="https://aq.qq.com/v2/hijack/hijack.js?v=1.1"></script>。同时该JS支持一些个性化的自定义操作,使用时如下所示。
var whiteDomain=/^www\.163\.com$/i;
AQHijackReport.init({
whiteReg:whiteDomain,//设置白名单,此项非必须参数
antiHijack:true//遇到被劫持是否隐藏打击,此项非必须参数
});
其中,whiteReg参数表示白名单网址URL域名,即匹配默认域名或这些正则表达式的网址URL都认为是正常URL,antiHijack表示检测到HTTP劫持时,是否进行打击,打击手段主要是隐藏显示。antiHijack是布尔型变量,取值为真(true)或假(false)。
防HTTP劫持的JS文件hijack.js、接受浏览器上报的劫持节点类型与非法URL的CGI文件hijack_report.cgi都部署在防劫持服务器上。防劫持服务器接收到上报数据后,会进行入数据库处理,方便各方查询与分析,以便改进本解决方案。其中,CGI部署在防劫持服务器上,在防劫持服务器端运行的一段程序,浏览器访问这个CGI,把劫持信息提交给CGI。
请参阅图6所示,为本发明实施例提供的防止网页劫持的处理系统中各个网元之间的交互流程示意图,主要包括如下过程:
步骤1、用户用个人电脑或手机上的浏览器正常访问网站,客户端发送 HTTP访问请求。
步骤2、网站服务器返回嵌入有防止HTTP劫持的脚本标签的HTML源文件和其他资源文件。其他资源文件例如:层叠样式表(Cascading Style Sheets, CSS)、图片、JS、字体等资源。客户端的浏览器加载网站服务器中的嵌入防 HTTP劫持JS的HTML文件和其他资源文件。
步骤3、由于HTML源文件中嵌入了防HTTP劫持JS的语句,浏览器同时去防劫持服务器拉取防HTTP劫持的JS。
步骤4、防HTTP劫持的JS运行在客户端的浏览器中,分析静态和动态改变的DOM节点,根据URL匹配规则判断是否被劫持,进行隐藏打击和上报。其中,防劫持服务器中的CGI接收到上报数据后,会进行入数据库处理,直接存入数据库,方便各方查询与分析,以便持续改进本解决方案。
以实名注册和防沉迷系统网站(http://jkyx.qq.com/)为例,该网页接入了本发明提出的解决方案,该网站接入防HTTP劫持JS系统,即在HTML源码中嵌入一段JS。HTML源文件是存放在web服务器的,执行在web客户端(浏览器端)。其中,防止HTTP劫持的JS为:<script type="text/javascript" src="https://aq.qq.com/v2/hijack/aq_dw_ob.js?v=1.1"></script>,从而客户端可以加载防http劫持的js。同时应用方可以设置一些参数,如是否设置网址白名单,是否进行打击等,如图7所示,为本发明实施例提供的网站HTML源码中嵌入防止HTTP劫持的JS的一种应用场景示意图。
3:当发生HTTP劫持时,防HTTP劫持JS对用于HTTP劫持的DOM(例如广告DOM节点)进行隐藏打击,即在客户端的网页上隐藏广告DOM节点,不显示对应内容,并将非法URL上报给防HTTP劫持后台。
4:步骤3上报的数据存在一份数据表中,方便各方查询与分析,以便改进本解决方案。
接下来对本发明实施例中判断HTTP劫持与打击HTTP劫持算法进行举例说明,主要包括如下代码:
接下来对generateNonTxDOMainFromDOM(appid,e)函数进行举例说明,根据DOM节点类型,可以匹配不同属性中的url,主要包括如下代码:
接下来对判断是否非法URL所采用的代码进行举例说明:
其中,动态插入的DOM节点是指DOM树中新插入的DOM节点,或者DOM树中原有的DOM节点的属性被动态改变,比如对一个已有DOM节点加上{background:url(http://xxx.png);这样的属性。
本发明实施例提出一种基于HTML DOM事件的防HTTP劫持的监测和解决方案。针对运营商篡改HTTP回包的方式,监听网页变化,如果网页引用了非法URL,则网页被HTTP劫持,对网页被劫持部分进行隐藏显示处理。详细的,客户端可以监听HTML的DOMNodeInserted、DOMContentLoaded、 DOMAttrModified事件,过滤出非法URL,对持有非法URL的DOM节点进行隐藏处理。本发明实施例中,页面加载完成时,一次遍历DOM树的DOM 节点,过滤出所有非法URL并对非法DOM节点进行隐藏显示打击处理。监听页面变化,对动态插入的DOM节点或DOM节点属性也进行检测和打击。本发明实施例中还支持设置域名白名单,即是否为非法URL的过滤名单,支持应用方自主定义,具有灵活性。本发明实施例接入简单,无需用户参与,用户体验流畅。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图8-a所示,本发明实施例提供的一种客户端800,可以包括:发送模块801、接收模块802、拉取模块803、检测模块804和打击处理模块805,其中,
发送模块801,用于向网站服务器发送超文本传输协议HTTP访问请求;
接收模块802,用于接收所述网站服务器返回的超文本标记语言HTML 源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签;
拉取模块803,用于根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码;
检测模块804,用于通过所述防止HTTP劫持的脚本代码从文档对象模型DOM树上检测是否存在用于HTTP劫持的DOM节点;
打击处理模块805,用于若存在所述用于HTTP劫持的DOM节点,从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点。
在本发明的一些实施例,所述发送模块801,还用于若存在所述用于HTTP 劫持的DOM节点,向所述防劫持服务器上报劫持信息。
在本发明的一些实施例,请参阅图8-b所示,所述检测模块804,包括:
源文件加载模块8041,用于在浏览器的网页上加载所述HTML源文件;
事件监听模块8042,用于通过所述浏览器监听如下的DOM事件:DOM 节点加载完成事件、动态插入DOM节点事件和动态改变DOM节点属性事件;
判断模块8043,用于根据监听所述DOM事件的结果判断所述防止HTTP 劫持的脚本代码配置的统一资源定位符URL匹配规则是否匹配于所述DOM 树上的DOM节点;
确定模块8044,用于将不匹配于所述URL匹配规则的DOM节点确定为所述用于HTTP劫持的DOM节点。
在本发明的一些实施例,所述防止HTTP劫持的脚本代码,还包括:网址白名单;
所述判断模块8043,具体用于判断所述DOM树上的所有DOM节点包括的URL是否属于所述URL匹配规则中设置的URL,以及判断所有DOM 节点包括的URL是否属于所述网址白名单中设置的URL;
所述确定模块8044,具体用于将URL不属于所述URL匹配规则、且不属于所述网址白名单的DOM节点确定为所述用于HTTP劫持的DOM节点。
在本发明的一些实施例,所述防止HTTP劫持的脚本代码,还包括:是否对HTTP劫持进行打击的指示消息;
所述打击处理模块805,具体用于从所述防止HTTP劫持的脚本代码中确定是否需要对HTTP劫持进行打击;当所述指示消息指示需要对HTTP劫持进行打击时,从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点。
通过前述实施例对本发明的举例说明可知,客户端首先向网站服务器发送HTTP访问请求,客户端接收网站服务器返回的HTML源文件,HTML源文件中嵌入有防止HTTP劫持的脚本标签,客户端然后根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,客户端通过防止HTTP劫持的脚本代码从DOM树上检测是否存在用于HTTP劫持的 DOM节点,若存在用于HTTP劫持的DOM节点,客户端从浏览器的网页上隐藏掉用于HTTP劫持的DOM节点。本发明实施例中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
请参阅图9-a所示,本发明实施例提供的一种防劫持服务器900,可以包括:管理模块901和发送模块902,其中,
管理模块901,用于获取防止HTTP劫持的脚本代码,并将所述防劫持服务器上拉取防止HTTP劫持的脚本代码到数据库中;
发送模块902,用于所述防劫持服务器向客户端返回所述防止HTTP劫持的脚本代码。
在本发明的一些实施例,请参阅图9-b所示,防劫持服务器900还包括:
接收模块903,用于所述发送模块902向客户端返回所述防劫持服务器上拉取防止HTTP劫持的脚本代码之后,接收所述客户端检测到用于HTTP劫持的DOM节点时发送的劫持信息;
所述管理模块901,还用于将所述劫持信息保存到所述数据库中。
在本发明的一些实施例,请参阅图9-c所示,防劫持服务器900还包括:
配置模块904,用于在所述防止HTTP劫持的脚本代码设置网址白名单;和/或,在所述防止HTTP劫持的脚本代码设置是否对HTTP劫持进行打击的指示消息。
通过前述实施例对本发明的举例说明可知,客户端根据防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,该防劫持服务器可以向客户端提供防止HTTP劫持的脚本代码,使得客户端中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
请参阅图10-a所示,本发明实施例提供的一种网站服务器1000,可以包括:接收模块1001和发送模块1002,其中,
接收模块1001,用于接收客户端发送的超文本传输协议HTTP访问请求;
发送模块1002,用于根据所述HTTP访问请求向所述客户端发送超文本标记语言HTML源文件,所述HTML源文件中嵌入有防止HTTP劫持的脚本标签。
在本发明的一些实施例,请参阅图10-b所示,网站服务器1000 还包括:配置模块1003,用于所述接收模块1001接收客户端发送的超文本传输协议 HTTP访问请求之前,在HTML源文件中插入所述防止HTTP劫持的脚本标签。
通过前述实施例对本发明的举例说明可知,客户端首先向网站服务器发送HTTP访问请求,客户端接收网站服务器返回的HTML源文件,HTML源文件中嵌入有防止HTTP劫持的脚本标签。本发明实施例中网站服务器发送给客户端嵌入有防止HTTP劫持的脚本标签的HTML源文件,使得客户端中页面加载完成时,可以遍历DOM树上的DOM节点,对用于HTTP劫持的 DOM节点进行隐藏,从而实现网页上正常内容的显示,并且可以防止网页劫持。
本发明实施例还提供了另一种终端,如图11所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图11示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图11,手机包括:射频(Radio Frequency,RF)电路1010、存储器 1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图11中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图11对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进 (Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service, SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图11中,触控面板1031 与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器1080还具有控制执行以上由终端执行的方法流程。
图12是本发明实施例提供的一种防劫持服务器结构示意图,该服务器 1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由防劫持服务器所执行的步骤可以基于该图12所示的服务器结构。
图13是本发明实施例提供的一种网站服务器结构示意图,该服务器1200 可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1222(例如,一个或一个以上处理器) 和存储器1232,一个或一个以上存储应用程序1242或数据1244的存储介质 1230(例如一个或一个以上海量存储设备)。其中,存储器1232和存储介质 1230可以是短暂存储或持久存储。存储在存储介质1230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1222可以设置为与存储介质1230通信,在服务器1200上执行存储介质1230中的一系列指令操作。
服务器1200还可以包括一个或一个以上电源1226,一个或一个以上有线或无线网络接口1250,一个或一个以上输入输出接口1258,和/或,一个或一个以上操作系统1241,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由防劫持服务器所执行的步骤可以基于该图13所示的服务器结构。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,RanDOM Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种防止网页劫持的处理方法,其特征在于,包括:
客户端向网站服务器发送超文本传输协议HTTP访问请求;
所述客户端接收所述网站服务器返回的超文本标记语言HTML源文件,其中,所述网站服务器接入防HTTP劫持系统,在所述HTML源文件中嵌入有防止HTTP劫持的脚本标签,所述防HTTP劫持系统为每个接入网站服务器分配一个应用标识;
所述客户端根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,所述防止HTTP劫持的脚本代码中包括:是否对HTTP劫持的文档对象模型DOM节点进行打击的指示消息,其中,所述防劫持服务器根据应用场景配置,设置所述指示消息;
所述客户端通过所述防止HTTP劫持的脚本代码,以所述网站服务器的应用标识为输入参数,监听DOM节点加载完成事件、动态插入DOM节点事件、动态改变DOM节点属性事件;
当监听到页面加载完成时,从DOM树上检测是否存在用于HTTP劫持的DOM节点;在监听到有动态插入的DOM节点时,检测该DOM节点是否为所述用于HTTP劫持的DOM节点,以及在监听到DOM树中原有的DOM节点的属性发生动态变化时,检测该节点是否为所述用于HTTP劫持的DOM节点;
在检测到所述用于HTTP劫持的DOM节点,并且所述指示消息指示需要对HTTP劫持进行打击时,所述客户端从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点,具体为将所述用于HTTP劫持的DOM节点的显示属性设置为空,其中,被HTTP劫持的内容为广告。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若存在所述用于HTTP劫持的DOM节点,所述客户端向所述防劫持服务器上报劫持信息。
3.根据权利要求1所述的方法,其特征在于,所述当监听到页面加载完成时,从DOM树上检测是否存在用于HTTP劫持的DOM节点,包括:
所述客户端在浏览器的网页上加载所述HTML源文件;
所述客户端根据监听所述DOM节点加载完成事件的结果,判断所述防止HTTP劫持的脚本代码配置的统一资源定位符URL匹配规则是否匹配于所述DOM树上的DOM节点;
所述客户端将不匹配于所述URL匹配规则的DOM节点确定为所述用于HTTP劫持的DOM节点。
4.根据权利要求3所述的方法,其特征在于,所述防止HTTP劫持的脚本代码,还包括:网址白名单;
所述客户端根据监听所述DOM节点加载完成事件的结果,判断所述防止HTTP劫持的脚本代码配置的统一资源定位符URL匹配规则是否匹配于所述DOM树上的DOM节点,具体为:
所述客户端判断所述DOM树上的所有DOM节点包括的URL是否属于所述URL匹配规则中设置的URL,以及判断所有DOM节点包括的URL是否属于所述网址白名单中设置的URL;
所述客户端将不匹配于所述URL匹配规则的DOM节点确定为所述用于HTTP劫持的DOM节点,具体为:
所述客户端将URL不属于所述URL匹配规则、且不属于所述网址白名单的DOM节点确定为所述用于HTTP劫持的DOM节点。
5.一种防止网页劫持的处理方法,其特征在于,包括:
防劫持服务器获取防止超文本传输协议HTTP劫持的脚本代码,并将所述防止HTTP劫持的脚本代码存储到数据库中;
所述防劫持服务器根据应用场景配置,设置是否对HTTP劫持的文档对象模型DOM节点进行打击的指示消息,向客户端返回所述防止HTTP劫持的脚本代码,所述防止HTTP劫持的脚本代码中包括所述指示消息,使所述客户端通过所述防止HTTP劫持的脚本代码,以网站服务器的应用标识为输入参数,监听DOM节点加载完成事件、动态插入DOM节点事件、动态改变DOM节点属性事件;当监听到页面加载完成时,从DOM树上检测是否存在用于HTTP劫持的DOM节点,在监听到有动态插入的DOM节点时,检测该DOM节点是否为所述用于HTTP劫持的DOM节点,以及在监听到有DOM树中原有的DOM节点的属性发生动态变化时,检测该节点是否为所述用于HTTP劫持的DOM节点;在检测到所述用于HTTP劫持的DOM节点,并且所述指示消息指示需要对HTTP劫持进行打击时,所述客户端从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点,具体为将所述用于HTTP劫持的DOM节点的显示属性设置为空,其中,被HTTP劫持的内容为广告,所述网站服务器接入防HTTP劫持系统,在超文本标记语言HTML源文件中嵌入有防止HTTP劫持的脚本标签,所述防HTTP劫持系统为每个接入网站服务器分配一个应用标识,所述客户端根据所述防止HTTP劫持的脚本标签从所述防劫持服务器上拉取所述防止HTTP劫持的脚本代码。
6.根据权利要求5所述的方法,其特征在于,所述防劫持服务器向客户端返回所述防止HTTP劫持的脚本代码之后,所述方法还包括:
所述防劫持服务器接收所述客户端检测到所述用于HTTP劫持的DOM节点时发送的劫持信息,并将所述劫持信息保存到所述数据库中。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述防劫持服务器在所述防止HTTP劫持的脚本代码设置网址白名单。
8.一种客户端,其特征在于,包括:
发送模块,用于向网站服务器发送超文本传输协议HTTP访问请求;
接收模块,用于接收所述网站服务器返回的超文本标记语言HTML源文件,其中,所述网站服务器接入防HTTP劫持系统,在所述HTML源文件中嵌入有防止HTTP劫持的脚本标签,所述防HTTP劫持系统为每个接入网站服务器分配一个应用标识;
拉取模块,用于根据所述防止HTTP劫持的脚本标签从防劫持服务器上拉取防止HTTP劫持的脚本代码,所述防止HTTP劫持的脚本代码中包括:是否对HTTP劫持的文档对象模型DOM节点进行打击的指示消息,其中,所述防劫持服务器根据应用场景配置,设置所述指示消息;
检测模块,用于通过所述防止HTTP劫持的脚本代码,以所述网站服务器的应用标识为输入参数,监听DOM节点加载完成事件、动态插入DOM节点事件、动态改变DOM节点属性事件;当监听到页面加载完成时,从DOM树上检测是否存在用于HTTP劫持的DOM节点;在监听到有动态插入的DOM节点时,检测该DOM节点是否为所述用于HTTP劫持的DOM节点,以及在监听到DOM树中原有的DOM节点的属性发生动态变化时,检测该节点是否为所述用于HTTP劫持的DOM节点;
打击处理模块,用于在检测到所述用于HTTP劫持的DOM节点,并且所述指示消息指示需要对HTTP劫持进行打击时,从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点,具体为将所述用于HTTP劫持的DOM节点的显示属性设置为空,其中,被HTTP劫持的内容为广告。
9.根据权利要求8所述的客户端,其特征在于,所述检测模块,包括:
源文件加载模块,用于在浏览器的网页上加载所述HTML源文件;
判断模块,用于根据监听所述DOM节点加载完成事件的结果,判断所述防止HTTP劫持的脚本代码配置的统一资源定位符URL匹配规则是否匹配于所述DOM树上的DOM节点;
确定模块,用于将不匹配于所述URL匹配规则的DOM节点确定为所述用于HTTP劫持的DOM节点。
10.根据权利要求9所述的客户端,其特征在于,所述防止HTTP劫持的脚本代码,还包括:网址白名单;
所述判断模块,具体用于判断所述DOM树上的所有DOM节点包括的URL是否属于所述URL匹配规则中设置的URL,以及判断所有DOM节点包括的URL是否属于所述网址白名单中设置的URL;
所述确定模块,具体用于将URL不属于所述URL匹配规则、且不属于所述网址白名单的DOM节点确定为所述用于HTTP劫持的DOM节点。
11.一种防劫持服务器,其特征在于,包括:
管理模块,用于获取防止超文本传输协议HTTP劫持的脚本代码,并将所述防止HTTP劫持的脚本代码存储到数据库中;
发送模块,用于根据应用场景配置,设置是否对HTTP劫持的文档对象模型DOM节点进行打击的指示消息,向客户端返回所述防止HTTP劫持的脚本代码,所述防止HTTP劫持的脚本代码中包括所述指示消息,使所述客户端通过所述防止HTTP劫持的脚本代码,以网站服务器的应用标识为输入参数,监听DOM节点加载完成事件、动态插入DOM节点事件、动态改变DOM节点属性事件;当监听到页面加载完成时,从DOM树上检测是否存在用于HTTP劫持的DOM节点,在监听到有动态插入的DOM节点时,检测该DOM节点是否为所述用于HTTP劫持的DOM节点,以及在监听到有DOM树中原有的DOM节点的属性发生动态变化时,检测该节点是否为所述用于HTTP劫持的DOM节点;在检测到所述用于HTTP劫持的DOM节点,并且所述指示消息指示需要对HTTP劫持进行打击时,所述客户端从浏览器的网页上隐藏掉所述用于HTTP劫持的DOM节点,具体为将所述用于HTTP劫持的DOM节点的显示属性设置为空,其中,被HTTP劫持的内容为广告,所述网站服务器接入防HTTP劫持系统,在超文本标记语言HTML源文件中嵌入有防止HTTP劫持的脚本标签,所述防HTTP劫持系统为每个接入网站服务器分配一个应用标识,所述客户端根据所述防止HTTP劫持的脚本标签从所述防劫持服务器上拉取所述防止HTTP劫持的脚本代码。
12.根据权利要求11所述的防劫持服务器,其特征在于,所述防劫持服务器还包括:接收模块,用于所述发送模块向客户端返回所述防止HTTP劫持的脚本代码之后,接收所述客户端检测到所述用于HTTP劫持的DOM节点时发送的劫持信息;
所述管理模块,还用于将所述劫持信息保存到所述数据库中。
13.一种客户端,其特征在于,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行权利要求1-4任一项所述的防止网页劫持的处理方法。
14.一种防劫持服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行权利要求5-7任一项所述的防止网页劫持的处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行程序,所述计算机可执行程序被处理器加载并执行时,实现权利要求1-4任一项所述的防止网页劫持的处理方法,和/或,权利要求5-7任一项所述的防止网页劫持的处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710400446.7A CN108989266B (zh) | 2017-05-31 | 2017-05-31 | 一种防止网页劫持的处理方法和客户端以及服务器 |
PCT/CN2018/084647 WO2018219076A1 (zh) | 2017-05-31 | 2018-04-26 | 防止网页劫持的处理方法、客户端以及服务器 |
US16/515,167 US11128662B2 (en) | 2017-05-31 | 2019-07-18 | Method, client, and server for preventing web page hijacking |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710400446.7A CN108989266B (zh) | 2017-05-31 | 2017-05-31 | 一种防止网页劫持的处理方法和客户端以及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989266A CN108989266A (zh) | 2018-12-11 |
CN108989266B true CN108989266B (zh) | 2021-09-10 |
Family
ID=64455911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710400446.7A Active CN108989266B (zh) | 2017-05-31 | 2017-05-31 | 一种防止网页劫持的处理方法和客户端以及服务器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11128662B2 (zh) |
CN (1) | CN108989266B (zh) |
WO (1) | WO2018219076A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688130A (zh) * | 2018-12-24 | 2019-04-26 | 北京奇虎科技有限公司 | 网页劫持检测方法、装置及计算机存储介质 |
CN111726322B (zh) * | 2019-03-19 | 2023-07-07 | 国家计算机网络与信息安全管理中心 | 一种文件篡改劫持的检测方法、装置及存储介质 |
CN109948025B (zh) * | 2019-03-20 | 2023-10-20 | 上海古鳌电子科技股份有限公司 | 一种数据引用记录方法 |
CN110225404A (zh) * | 2019-06-17 | 2019-09-10 | 深圳市正易龙科技有限公司 | 视频播放方法、终端及计算机可读存储介质 |
CN111027053A (zh) * | 2019-10-28 | 2020-04-17 | 深圳市跨越新科技有限公司 | 一种Android应用程序具有防Activity劫持的检测方法和系统 |
CN111125698A (zh) * | 2019-11-28 | 2020-05-08 | 中金金融认证中心有限公司 | 一种Android应用中界面防劫持的系统和方法 |
US11356415B2 (en) * | 2020-03-09 | 2022-06-07 | Arbor Networks, Inc. | Filter for suspicious network activity attempting to mimic a web browser |
CN111526129B (zh) * | 2020-04-01 | 2022-07-08 | 五八有限公司 | 一种信息上报方法及装置 |
CN111737615A (zh) * | 2020-05-14 | 2020-10-02 | 北京百度网讯科技有限公司 | 获取页面资源的方法、装置、电子设备以及可读存储介质 |
CN111611582B (zh) * | 2020-05-22 | 2023-08-25 | 百度在线网络技术(北京)有限公司 | 用于识别页面劫持行为的方法和装置 |
CN111898128B (zh) * | 2020-08-04 | 2024-04-26 | 北京丁牛科技有限公司 | 一种针对跨站脚本攻击的防御方法及装置 |
CN111818105B (zh) * | 2020-09-11 | 2021-01-05 | 北京达佳互联信息技术有限公司 | 域名的异常识别方法、装置、服务器及存储介质 |
CN112182614B (zh) * | 2020-09-29 | 2023-10-13 | 北京天云海数技术有限公司 | 一种动态Web应用防护系统 |
CN112769792B (zh) * | 2020-12-30 | 2023-05-02 | 绿盟科技集团股份有限公司 | 一种isp攻击检测方法、装置、电子设备及存储介质 |
CN113992392A (zh) * | 2021-10-26 | 2022-01-28 | 杭州推啊网络科技有限公司 | 一种移动互联网流量防劫持方法和系统 |
CN116155549B (zh) * | 2022-12-23 | 2023-12-29 | 武汉雨滴科技有限公司 | 终端外联检测方法、装置、电子设备及存储介质 |
CN116912669B (zh) * | 2023-09-11 | 2023-11-28 | 中国物品编码中心 | 一种网页劫持监测方法、系统、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469113A (zh) * | 2010-11-01 | 2012-05-23 | 北京启明星辰信息技术股份有限公司 | 一种安全网关及其转发网页的方法 |
CN103605926A (zh) * | 2013-11-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种网页篡改的检测方法及装置 |
CN104348803A (zh) * | 2013-07-31 | 2015-02-11 | 深圳市腾讯计算机系统有限公司 | 链路劫持检测方法、装置、用户设备、分析服务器及系统 |
CN105164662A (zh) * | 2013-03-15 | 2015-12-16 | 艾新顿公司 | 用于动态地改变可见页面内容的方法覆盖的使用 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677141B2 (en) * | 2007-11-23 | 2014-03-18 | Microsoft Corporation | Enhanced security and performance of web applications |
US8601565B1 (en) * | 2013-06-19 | 2013-12-03 | Edgecast Networks, Inc. | White-list firewall based on the document object model |
US20160337318A1 (en) * | 2013-09-03 | 2016-11-17 | Pagefair Limited | Anti-tampering system |
US9438610B2 (en) * | 2013-09-03 | 2016-09-06 | Pagefair Limited | Anti-tampering server |
CN103605688B (zh) * | 2013-11-01 | 2017-05-10 | 北京奇虎科技有限公司 | 一种网页广告的拦截方法、装置和浏览器 |
WO2016168428A1 (en) * | 2015-04-15 | 2016-10-20 | Qatar Foundation For Education, Science And Community Development | Cross-site scripting detection method |
-
2017
- 2017-05-31 CN CN201710400446.7A patent/CN108989266B/zh active Active
-
2018
- 2018-04-26 WO PCT/CN2018/084647 patent/WO2018219076A1/zh active Application Filing
-
2019
- 2019-07-18 US US16/515,167 patent/US11128662B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469113A (zh) * | 2010-11-01 | 2012-05-23 | 北京启明星辰信息技术股份有限公司 | 一种安全网关及其转发网页的方法 |
CN105164662A (zh) * | 2013-03-15 | 2015-12-16 | 艾新顿公司 | 用于动态地改变可见页面内容的方法覆盖的使用 |
CN104348803A (zh) * | 2013-07-31 | 2015-02-11 | 深圳市腾讯计算机系统有限公司 | 链路劫持检测方法、装置、用户设备、分析服务器及系统 |
CN103605926A (zh) * | 2013-11-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种网页篡改的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190342334A1 (en) | 2019-11-07 |
US11128662B2 (en) | 2021-09-21 |
WO2018219076A1 (zh) | 2018-12-06 |
CN108989266A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108989266B (zh) | 一种防止网页劫持的处理方法和客户端以及服务器 | |
TWI606360B (zh) | 一種網頁檢測方法、裝置和系統 | |
US10109079B2 (en) | Method and apparatus for processing tab in graphical interface | |
US9754113B2 (en) | Method, apparatus, terminal and media for detecting document object model-based cross-site scripting attack vulnerability | |
CN102917074B (zh) | 一种实现服务器端浏览器的方法和服务器 | |
US10956653B2 (en) | Method and apparatus for displaying page and a computer storage medium | |
CN107766358B (zh) | 一种页面分享的方法及相关装置 | |
CN109948090B (zh) | 网页加载方法及装置 | |
CN109088844B (zh) | 信息拦截方法、终端、服务器及系统 | |
CN109873794B (zh) | 一种拒绝服务攻击的防护方法及服务器 | |
CN108170723B (zh) | 一种网页资源获取方法、终端设备、服务器及系统 | |
CN107911536B (zh) | 一种跨应用程序访问方法、设备及计算机可读存储介质 | |
WO2017028692A1 (zh) | 一种视频播放器调用方法、装置及存储介质 | |
WO2014173167A1 (en) | Method, apparatus and system for filtering data of web page | |
CN107992615B (zh) | 一种网址推荐方法、服务器及终端 | |
WO2015003636A1 (zh) | 一种页面元素的拦截方法和装置 | |
CN104750730B (zh) | 一种浏览器显示方法,及装置 | |
CN110445746B (zh) | cookie获取方法、装置及存储设备 | |
CN111143727A (zh) | 页面加载方法及电子设备 | |
CN109271779A (zh) | 一种安装包检测方法、终端设备及服务器 | |
WO2015055125A1 (zh) | 网页信息的处理方法及装置 | |
CN113064635A (zh) | 一种智能电视的页面显示方法和装置 | |
WO2018137528A1 (zh) | 资源访问方法及装置 | |
CN105094872B (zh) | 一种显示网页应用的方法和装置 | |
CN112445967B (zh) | 信息推送的方法、装置、可读存储介质及信息推送系统 |
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 |