防止广告运营商流量劫持的方法、装置、设备及存储介质与流程

文档序号:15099187发布日期:2018-08-04 15:19阅读:187来源:国知局

本发明涉及网络安全领域,尤其涉及一种防止广告运营商流量劫持的方法、装置、设备及存储介质。



背景技术:

当用户在请求一个网页时,广告运营商会在与该网页相关的网页资源信息中插入网络广告资源信息,让客户端(通常是浏览器)展示与网页无关的数据,以达到广告运营商流量劫持的目的。这些网络广告资源信息通常为一些弹窗、宣传性广告或者直接显示其他网页的内容。目前针对广告运营商流量劫持的处理方法大部分是通过升级网络访问协议,即采用较为安全的HTTPS协议进行保护。但当前互联网中使用HTTP协议请求网页仍然占很大的比例,且目前网页所采用的网络访问协议未实现从HTTP升级到HTTPS,因此,无法实现较好的防止广告运营商进行流量广告劫持。



技术实现要素:

本发明实施例提供一种防止广告运营商流量劫持的方法、装置、设备及存储介质,以解决广告运营商在用户请求网页时将网络广告资源信息插入到该网页正常的网页资源信息中,发生流量广告劫持的问题。

第一方面,本发明实施例提供一种防止广告运营商流量劫持的方法,包括:

获取客户端发送的当前HTTP访问请求,所述当前HTTP访问请求包括待访问URL;

基于所述当前HTTP访问请求,获取所述待访问URL对应的原始访问网页,所述原始访问网页包括原始DOM树;

采用所述防劫持的软件开发包对所述原始DOM树进行防劫持处理,获取对应的目标DOM树;

基于所述目标DOM树,获取对应的目标访问网页;

将所述目标访问网页发送给所述客户端,以使所述客户端显示所述目标访问网页。

第二方面,本发明实施例提供一种防止广告运营商流量劫持的装置,包括:

访问请求获取模块:用于获取客户端发送的当前HTTP访问请求,所述当前HTTP访问请求包括待访问URL;

原始访问网页获取模块,用于基于所述当前HTTP访问请求,获取所述待访问URL对应的原始访问网页,所述原始访问网页包括原始DOM树;

目标DOM树获取模块,用于采用所述防劫持的软件开发包对所述原始DOM树进行防劫持处理,获取对应的目标DOM树;

目标访问网页获取模块,用于基于所述目标DOM树,获取对应的目标访问网页;

客户端显示模块,用于将所述目标访问网页发送给所述客户端,以使所述客户端显示所述目标访问网页。

第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述防止广告运营商流量劫持的方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述防止广告运营商流量劫持的方法的步骤。

本发明实施例提供的防止广告运营商流量劫持的方法、装置、设备及存储介质,通过获取客户端发送的当前HTTP访问请求,获取待访问URL。基于当前HTTP访问请求,对待访问URL对应的原始访问网页的原始DOM树采用防劫持的软件开发包进行防劫持处理,获取目标DOM树,使目标DOM树中不包含黑名单特征标签,以使基于目标DOM树渲染出的目标访问网页,并在客户端显示目标访问网页。该目标访问网页在用户浏览访问网页时不显示广告运营商插入的网页资源信息,只显示正常的网页资源信息,从而实现较好的防止广告运营商进行流量广告劫持的目的。

附图说明

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

图1是本发明实施例1中防止广告运营商流量劫持的方法的一流程图。

图2是图1中步骤S30的一具体示意图。

图3是本发明实施例1中防止广告运营商流量劫持的方法的另一流程图。

图4是图3中步骤S303的一具体示意图。

图5是图3中步骤S305的一具体示意图。

图6是本发明实施例1中防止广告运营商流量劫持的方法的另一流程图。

图7是图1中步骤S40的一具体示意图。

图8是本发明实施例2中防止广告运营商流量劫持的装置的一原理框图。

图9是本发明实施例4中提供的终端设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1示出本实施例中防止广告运营商流量劫持的方法的流程图。该防止广告运营商流量劫持的方法应用在服务器中,该服务器与客户端通过网络进行信息交互,可在用户访问网页时,防止广告运营商在正常的网页资源信息中插入网络广告资源信息,达到防止广告运营商流量广告劫持的目的。如图1所示,该防止广告运营商流量劫持的方法包括如下步骤:

S10:获取客户端发送的当前HTTP访问请求,当前HTTP访问请求包括待访问URL。

其中,待访问URL是指用户需要访问的网页地址。具体地,与客户端通信相连的服务器会接收客户端发送的当前HTTP访问请求,该当前HTTP访问请求一般携带有网页地址URL,该URL即为客户端发送给服务器需要访问的网页地址。

S20:基于当前HTTP访问请求,获取待访问URL对应的原始访问网页,原始访问网页包括原始DOM树。

具体地,原始访问网页是指待访问URL对应的网页,原始DOM树是指原始访问网页对应的DOM树。服务器根据当前HTTP访问请求中的待访问URL获取该URL对应的原始访问网页,每一原始访问网页都对应一DOM树,该DOM树即为该原始访问网页对应的原始DOM树。原始DOM树是指待访问URL对应的原始访问网页加载的所有网页资源信息对应的DOM树。该原始DOM树包括该原始访问网页正常的网页资源信息对应的DOM树,也包括被广告运营商劫持,插入的网络广告资源信息对应的DOM树。

原始访问网页加载的网页资源信息可以有多种展示方式,包括但不限于图片、文字、网址和视频。这些网页资源信息,即就是网页中的元素。这些网页中的元素对于软件开发包来说,都是以DOM标签存在的。

其中,DOM树(Document Object Model,文档对象模型)是专门适用于HTML(超级文本标记语言)的文档对象模型,该HTML是指为网页创建和其它可在网页浏览器中看到的信息设计的一种标记语言。一个网页的本质就是由一个HTML(超级文本标记语言)组成的,DOM树就是该网页对应的文档对象模型。在DOM树中,网页中的各个元素都被看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。一个网页中存在至少一个元素,一个元素对应DOM树中的一个DOM标签,即一个DOM树中存在至少一个DOM标签。

S30:采用防劫持的软件开发包对原始DOM树进行防劫持处理,获取对应的目标DOM树。

其中,防劫持的软件开发包是由一套JavaScript代码组成的用于检测是否存在疑似广告URL的软件开发包,该套JavaScript代码是在浏览器中以script标签的方式引入到该软件开发包的。如JavaScript代码在该软件开发包中的表现形式为<script src=“a.js”>,其中,src后为该软件开发包的地址。软件开发包(Software Development Kit,即SDK)是指一种为软件开发提供的工具包,通常是用于为特定的软件包、软件框架、硬件平台和操作系统等建立应用软件的开发工具的集合。

防劫持处理是指采用防劫持的软件开发包扫描原始DOM树的所有DOM标签,将原始DOM树的所有DOM标签中包含的原始URL的域名与待访问URL的域名进行比较,去除与待访问URL的域名不一致的原始URL。原始URL是指原始DOM树中的DOM标签包含的URL。

域名是指网络上的一个服务器或一个网络系统的名字,它代表了网页在因特网上的地址。如一URL为:https://baidu.com/question/16519781.html,其中,zhidao.baidu.com即为该URL的域名,该域名代表了该网页在因特网上的地址。原始URL的域名是指对原始URL进行域名提取获得的因特网上的地址,待访问URL的域名是指对待访问URL进行域名提取获得的因特网上的地址。

具体地,服务器获取客户端发送的当前HTTP访问请求后,基于该当前HTTP访问请求获取防劫持的软件开发包。在待访问URL对应的原始访问网页加载完成该网页的所有网页资源信息后,该待访问URL对应的原始访问网页会出现一个onload的状态事件,该状态事件是指接入防劫持的软件开发包对该待访问URL对应的原始网页加载的网页资源信息进行处理的状态事件,该状态事件有一个接口,可以接入防劫持的软件开发包对DOM树进行扫描。

将原始DOM树中包含的所有DOM标签中对应的原始URL的域名与待访问URL的域名进行比较,去除原始URL中和待访问URL的域名不一致的原始URL,得到的DOM树,即为目标DOM树。

S40:基于目标DOM树,获取对应的目标访问网页。

目标访问网页是指目标DOM树经过渲染生成的网页。通过对步骤S30得到的目标DOM树进行渲染,可使原始访问网页去除不相关的网页资源信息,只保留该网页正常的网页资源信息,使得用户在浏览目标访问网页时只浏览需要的网页资源信息。其中,渲染是指将DOM树生成可浏览的网页的一种操作。

S50:将目标访问网页发送给客户端,以使客户端显示目标访问网页。

本实施例中,客户端将当前HTTP访问请求发送给服务器,服务器在控制客户端显示与访问请求中的网页地址URL相对应的目标访问网页时,可去除不相关的网页资源信息,得到网页正常的网页资源信息。在客户端显示目标访问网页时,可防止一些网络广告资源信息插入到该网页正常的网页资源信息中,使得用户在浏览目标访问网页时,不会出现与该目标访问网页不相关的网页资源信息,避免造成不必要的流量损失。

在一具体实施方式中,原始DOM树包括至少一个DOM标签,如图2所示,步骤S30,采用防劫持的软件开发包对原始DOM树进行防劫持处理,获取对应的目标DOM树,具体包括如下步骤:

S31:防劫持的软件开发包调用预先配置的黑名单库和正则表达式,黑名单库包括至少一个黑名单特征标签。

黑名单库是指存储黑名单特征标签和黑名单域名的数据库。黑名单特征标签是指含有黑名单域名的DOM标签,该黑名单特征标签中包含与待访问URL的域名不一致的原始URL。黑名单域名是指原始URL中与待访问URL的域名不一致并达到预设值的原始URL中的域名,该黑名单库存储在服务器中。预设值是指预先设置的确定成为黑名单域名的数量。

正则表达式又称规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式是对字符串操作的一种逻辑公式,用来表达对字符串的一种过滤逻辑。字符串包括普通字符(如a到z之间的字母)和特殊字符(又称为“元字符”,如“$、*、&、#、+、?”)。

该正则表达式存储在防劫持的软件开发包中,便于防劫持的软件开发包在扫描完原始DOM树中的每一DOM标签后,可对该DOM标签中的原始URL进行规则过滤。

具体地,在浏览器加载完成一原始访问网页的所有网页资源信息后,该浏览器网页会通过显示的onload的状态事件包含的接口接入的防劫持的软件开发包,该防劫持的软件开发包会通过自身设置的调用程序调用预先存储在服务器中的黑名单库和防劫持的软件开发包中的正则表达式。

通过防劫持的软件开发包自身设置的调用程序,调用已存储好的黑名单库和正则表达式对原始访问网页对应的DOM树中的所有DOM标签进行规则判断和黑名单域名的存储,可以做到调用指令同时进行,提高效率,节省处理时间。

S32:基于正则表达式对至少一个黑名单特征标签进行处理,获取目标黑名单。

目标黑名单是指用于存储黑名单域名的名单,其中,该黑名单域名是指通过正则表达式对黑名单特征标签进行域名提取得到的域名。

具体地,采用正则表达式对黑名单特征标签中的与待访问URL的域名不一致的原始URL进行拆分,将该原始URL拆分为协议名称、域名和参数这三个部分;然后,去除协议名称和域名后面的参数部分,只保留域名,从而获取相应的黑名单域名。如一黑名单特征标签对应的原始URL为:http://pos.baidu.com/s?hei=250&wid=250&di=u3031286&ltu=lV-RgLBX*E5wJyFr&r=35d363d1cad5eabfcd131082d275f954#,其中,“http”对应协议名称,“pos.baidu.com”对应域名,域名后的所有内容可统称为参数。采用正则表达式对黑名单特征标签对应的原始URL进行拆分,只保留域名“pos.baidu.com”,则“pos.baidu.com”为黑名单域名,该黑名单域名存储在目标黑名单中,目标黑名单包括至少一个黑名单域名。

S33:删除原始DOM树中与目标黑名单相对应的至少一个DOM标签,获取对应的目标DOM树。

在确认目标黑名单后,基于获取的目标黑名单查找待访问URL对应的原始DOM树中的所有DOM标签,删除原始DOM树中与目标黑名单一致的原始URL对应的域名所在的DOM标签。本实施例中,一个原始DOM树中包含至少一个黑名单特征标签,由于黑名单特征标签对应的网页资源信息是与目标访问网页不相关的网络广告资源信息,因此,需要删除待访问URL对应的原始DOM树中与目标黑名单一致的所有DOM标签,得到只显示正常的网页资源信息对应的目标DOM树。

通过删除待访问URL对应的原始DOM树中与目标黑名单相对应的至少一个DOM标签,获取对应的目标DOM树,可以使目标DOM树中不包含黑名单特征标签,使得渲染出的目标访问网页不显示目标黑名单命中的原始URL对应的网页资源信息,只显示正常的网页资源信息。

在一具体实施方式中,如图3所示,在步骤S30,采用防劫持的软件开发包对原始DOM树进行防劫持处理的步骤之前,该防止广告运营商流量劫持的方法还包括:预先配置黑名单库的步骤,以便基于配置好的黑名单库进行防劫持处理。预先配置黑名单库具体包括如下步骤:

S301:获取客户端发送的历史HTTP访问请求,历史HTTP访问请求包括历史访问URL。

历史HTTP访问请求是指服务器中记录的历史HTTP访问请求,历史访问URL是指历史HTTP访问请求对应的历史访问网址。具体地,与客户端通信相连的服务器会接收并存储客户端发送的历史HTTP访问请求。

S302:基于历史访问URL获取对应的历史访问网页,历史访问网页对应一历史DOM树。

历史访问网页是指历史访问URL对应的访问网页,历史DOM树是指历史访问网页对应的DOM树。

具体地,服务器根据历史HTTP访问请求中的历史访问URL获取该历史访问URL对应的历史访问网页,每一历史访问网页都有一对应的历史DOM树,该历史访问URL对应的历史访问网页同样包括该历史访问网页对应的正常的网页资源信息和广告运营商劫持插入的网络广告的网页资源信息。

S303:采用防劫持的软件开发包扫描历史DOM树,判断历史DOM树中是否存在疑似广告URL。

疑似URL是指符合预设特征的DOM标签对应的历史访问URL。该预设特征是指广告运营商植入的广告代码对应的DOM标签的特征。广告代码对应的DOM标签的特征包括但不限于广告代码整体性特征、URL跳转特征和需要展示在网页具体位置的绝对定位特征。其中,广告代码整体性特征是指广告运营商需要展示的完整的广告信息,该广告信息对应的广告代码就是一段完整的代码,即表现在DOM树中就是一个整体,表现形式可以是以<div>开始,以</div>结束中的一段代码。URL跳转特征是指插入一张广告图,并加了<a>的URL链接,a为一串代表该图片存放位置的字符串。绝对定位特征是指在历史访问URL对应的历史访问网页对应的DOM树的尾部多出来很多iframe和嵌入有广告代码的div,如历史访问URL对应的历史访问网页的最后一个元素为<div id='last-div'>,非法插入的代码为</div><script src=”a.js”>。

采用防劫持的软件开发包扫描所有历史访问URL对应的历史DOM树,若历史DOM树中存在广告代码整体性特征、URL跳转特征和绝对定位特征这三种预设特征中的任何一种,则可以认定该历史DOM树中存在疑似广告URL,该疑似广告URL为初步确定的广告URL,确定该疑似广告URL有助于确定黑名单域名,从而保证步骤S305基于该疑似广告提取域名,实现将黑名单域名存储在黑名单库中。

S304:若历史DOM树中存在疑似广告URL,则将疑似广告URL存储在缓存库中。

具体地,判断历史DOM树中是否存在符合预设特征的DOM标签,若存在符合预设特征的DOM标签,则可认定该历史DOM树中存在疑似广告URL,将该历史DOM标签也就是疑似广告URL存储在缓存库中。可以理解地,将疑似广告URL存储在缓存库中可以做到对缓存库中的疑似广告URL等数据进行快速处理(包括但不限于查询处理),不需要请求服务器并获取服务器发送的处理指令进行数据处理。

本实施例中的缓存库可以是mysql关系型数据库,mysql关系型数据库是一种开放源代码的关系型数据库管理系统,提供了面向多种编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。mysql关系型数据库具有速度高、可靠性好和适应性强等特点,使用mysql关系型数据库进行存储疑似广告URL,可以实现主从配置和读写分离的功能,能为数据的存储提供高效的服务。

S305:基于缓存库中的疑似广告URL确定黑名单域名,并将黑名单域名存储在黑名单库中。

其中,黑名单域名是指对疑似广告URL进行域名提取后获取的域名。黑名单库是指存储黑名单域名的数据库。可以理解地,一个黑名单库中存储着至少一个黑名单域名。

具体地,对存储在缓存库中的疑似广告URL进行域名提取,若该疑似广告URL提取的域名符合预设的黑名单判断方法,则确定该疑似广告URL提取的域名确定为黑名单域名。然后,将该黑名单域名存储在预先创建的黑名单库中,以便于后续进行黑名单域名识别时,可作为参考依据。

在一具体实施方式中,如图4所示,步骤S303,采用防劫持的软件开发包扫描历史DOM树,判断历史DOM树中是否存在疑似广告URL,具体包括如下步骤:

S3031:采用防劫持的软件开发包扫描历史DOM树,获取历史DOM树包含的历史URL。

采用防劫持的软件开发包采用广度优先的扫描方式扫描历史访问URL对应的历史DOM树的所有DOM标签,从该历史DOM树最外层的“html”标签开始扫描,逐层确定每一层极的DOM标签中以URL形式存在的至少一个DOM标签,从而获取该历史DOM树中所有的历史URL。

S3032:若历史URL的域名与历史访问URL的域名不匹配,则确定历史DOM树中存在疑似广告URL。

其中,历史URL的域名是指对历史URL进行域名提取获得的因特网上的地址,历史访问URL的域名是指对历史访问URL进行域名提取获得的因特网上的地址。

获取历史URL的域名与历史访问URL的域名的具体过程为:基于正则表达式对获取的历史访问URL和每一历史访问URL对应的历史DOM树中的所有历史URL进行域名提取。对提取的每一历史访问URL对应的历史URL的域名和该历史访问URL的域名进行判断,判断该历史访问URL对应的历史URL的域名和历史访问URL的域名是否匹配。若两者匹配一致,则表示该历史访问URL对应的历史URL为该用户需要访问的网页原有的网页资源信息;若匹配不一致,则表示该历史访问URL对应的历史DOM树中本身存在疑似URL,该历史访问URL对应的历史URL不是用户需要访问的网页原有的网页资源信息。

在一具体实施方式中,如图5所示,步骤S305,基于缓存库中的疑似广告URL确定黑名单域名,具体包括如下步骤:

S3051:对缓存库中的每一疑似广告URL进行域名提取,获取相应的疑似域名。

当被确定为疑似广告URL后,该疑似广告URL就会存储在缓存库中,缓存库中存储至少一个疑似URL。对缓存库中的每一个疑似URL进行域名提取,提取出来的该域名则为疑似域名。

进一步地,调用防劫持的软件开发包中的正则表达式对缓存库中的每一疑似广告URL进行域名提取,获取对应的疑似域名。

采用封装好的正则表达式对缓存库中的每一疑似广告URL进行拆分,以拆分为协议名称、域名和参数这三个部分;然后,去除协议名称和域名后面的参数部分,只保留域名,从而获取相应的疑似域名。如疑似广告URL为:http://pos.baidu.com/s?hei=250&wid=250&di=u3031286&ltu=lV-RgLBX*E5wJyFr&r=35d363d1cad5eabfcd131082d275f954#,其中,“http”对应协议名称,“pos.baidu.com”对应域名,域名后的所有内容可统称为参数。在采用正则表达式对上述疑似广告URL进行域名提取时只保留域名部分“pos.baidu.com”,则“pos.baidu.com”为疑似域名。

S3052:确定缓存库中数量达到预设值的疑似域名为黑名单域名。

其中,黑名单域名是指同一疑似域名在缓存库存储的次数达到(即大于或等于)预设值时,确定该疑似域名。该预设值如步骤S31中说明的是指预先设置的确定成为黑名单域名的数量,本实施例中,该预设值为疑似域名存储在缓存库中的数量。该预设值用于判断疑似域名是否为黑名单域名。

若该疑似域名在缓存库中出现一次,未达到预设值时,还不能确认该疑似域名就是黑名单域名,可能只是一个与历史访问URL的域名不匹配的域名,当该疑似域名在缓存库中存储的数量达到预设值时,则可以确认该疑似域名为黑名单域名。可以理解地,设置疑似域名的数量达到预设值时才确定为黑名单域名,可以减少黑名单域名的误判,提高确定黑名单域名的准确性。

在一具体实施方式中,如上所述,若缓存库中的疑似广告URL的数量达到预设值是认定其为黑名单域名,可能存在误判,会导致后续被误判的疑似广告URL进入黑名单库中,导致无法进行访问或其他操作。因此,在防劫持的软件开发包中预先配置白名单库。如图6所示,在将黑名单域名存储在黑名单库中的步骤之后,该防止广告运营商流量劫持的方法还包括:

S61:获取误判恢复请求,误判恢复请求包括待恢复URL。

误判恢复请求是服务器接收到用户需要进行恢复查看被隐藏内容的恢复请求,该隐藏内容是指加入黑名单的黑名单域名对应的URL显示的网页资源信息对应的网页内容。待恢复URL是指需要恢复查看被隐藏内容对应的URL。具体地,在进行黑名域名确认的过程中,可能会存在误判情况。当用户在访问某一网页时,由于服务器已经将和历史访问网页的域名不一致疑似广告URL对应的域名判断为黑名单域名,并加入黑名单库中。因此,该网页只显示没有加入黑名单库中部分网页资源信息对应的网页内容,加入黑名单库中的部分网页资源信息对应网页内容被隐藏不进行显示。在浏览器显示网页资源信息对应的网页内容时,该网页会出现一个是否查看隐藏内容的通知信息。若用户点击恢复该隐藏内容,则服务器会获取一个恢复请求,该恢复请求则为误判恢复请求。同时该误判恢复请求中包括需要恢复的隐藏内容对应的URL,该URL则为待恢复URL。获取误判恢复请求可以减少加入黑名单库中误存的域名,帮助用户浏览完整的网页资源信息对应的网页内容。

S62:调用防劫持的软件开发包中的正则表达式对待恢复URL进行域名提取,获取待恢复域名。

当服务器接收到用户发送的误判恢复请求时,调用防劫持的软件开发包中的正则表达式对待恢复URL进行域名提取,获取该待恢复URL对应的待恢复域名,其域名提取过程如步骤S3051中描述,为避免重复,不一一赘述。

S63:将黑名单库中存储的与待恢复域名一致的黑名单域名删除,更新黑名单库。

基于获取到待恢复域名,服务器对该待恢复域名和黑名单库存储的黑名单域名进行比较确认,将与待恢复域名一致的黑名单库中存储的黑名单域名删除,更新黑名单库。步骤S63,可保证黑名单库中存储的黑名单域名可以根据实际情况进行不断的调整,降低黑名单域名的误判率,保证黑名单库中存储的黑名单的准确性。

在一具体实施方式中,在步骤S63,将黑名单库中存储的与待恢复域名一致的黑名单域名删除的步骤之后,该防止流量劫持的黑名单库创建方法还包括:

S64:将黑名单库中存储的与待恢复域名一致的黑名单域名作为白名单域名,存储在白名单库中。

在创建黑名单库的同时创建一白名单库,该白名单库是指存储某一网页允许用户访问的网页的URL对应的待恢复域名的数据库。基于待恢复域名对黑名单库中存储的黑名单域名进行比较判断,将与待恢复域名一致的黑名单域名作为白名单域名,并将该白名单域名存储在白名单库中。

本实施例中,白名单库中还包括预先存储的白名单域名。该预先存储的白名单域名为:一些历史访问网页是允许插入不属于该网页正常的网页资源信息的网络广告资源信息,这时就可以对属于该历史访问的网络广告资源信息对应的历史URL采用正则表达式进行域名提取,并将提取到的域名存储在白名单库中。

当防劫持的软件开发包对用户历史访问网页的历史DOM树中的所有DOM标签进行扫描时,确定疑似广告URL并将疑似广告URL存储在缓存库之后,需对该疑似广告URL进行域名提取,以确定疑似广告URL对应的域名(即步骤S3051中的疑似域名),并在判断该疑似域名与白名单库中的白名单域名一致时,显示该疑似广告URL对应的网页资源信息。例如,百度网页中允许插入的百度推广广告,这些百度推广广告对应的URL经防劫持的软件开发包扫描确定为疑似广告URL,但经域名提取之后确定域名在白名单库中,则可显示该百度推广广告对应的URL的网页资源信息。这样可以避免将某一网页允许用户访问的网页资源信息对应的网页内容误加入黑名单中,造成不必要的网页资源信息对应的网页内容的损失,能更全面反映该网页资源信息对应的网页内容。

在一具体实施方式中,在步骤S304,将疑似广告URL存储在缓存库中的步骤之后,该防止流量劫持的黑名单库创建方法还包括:若疑似广告URL对应的域名存储在白名单库中,则将疑似广告URL从缓存库中删除。

可以理解地,在将疑似广告URL存储在缓存库之后,需对该疑似广告URL进行域名提取,以确定疑似广告URL对应的域名(即步骤S3051中的疑似域名),并在判断该疑似广告URL对应的域名存储在白名单库中时,则表明该疑似广告URL对应的域名属于白名单库,其对应的URL的内容是需要显示的网页资源信息对应的网页内容。为了避免出现只删除黑名单库中存储的疑似广告URL对应的域名,而没有删除存储在缓存库中的疑似广告URL,从而导致该疑似广告URL对应的网页资源信息对应的网页内容仍然不能正常显示。因此,在确认疑似广告URL对应的域名存储在白名单库中后,需将疑似广告URL从缓存库中删除。

在一具体实施方式中,步骤S30,采用防劫持的软件开发包对原始DOM树进行防劫持处理,获取对应的目标DOM树,还包括:

S34:若原始DOM树中的黑名单特征标签在白名单库中,则将黑名单特征标签恢复,重新加入到目标DOM树中。

具体地,将黑名单库中存储的与待恢复域名一致的黑名单域名删除后,查询存储在黑名单库中的黑名单特征标签,将该黑名单特征标签从黑名单库中删除,更新黑名单库,同时将该黑名单特征标签存储在白名单库中。

当服务器获取到一待访问URL并对该待访问URL对应的原始访问网页采用防劫持的软件开发包对该待访问URL对应的原始DOM树的所有DOM标签扫描时,首先基于黑名单库中的黑名单特征标签对原始DOM树中的所有DOM标签进行判断,对与黑名单特征标签对应的DOM标签进行隐藏。然后基于白名单库中存储的黑名单特征标签对原始DOM树中的所有DOM标签进行判断,对被隐藏的DOM标签且属于白名单库中的黑名单特征标签进行恢复,使得该DOM标签重新加入到目标DOM树中。使得目标DOM树基于白名单库中的黑名单特征标签恢复误加入黑名单库中的黑名单特征标签,使得目标DOM树更加完整。

在一具体实施方式中,原始访问网页还包括原始CSSOM树。如图7所示,步骤S40,基于目标DOM树,获取对应的目标访问网页,具体包括如下步骤:

S41:基于目标DOM树和原始CSSOM树,形成渲染树,渲染树包括至少一个待渲染节点。

原始CSSOM树(Cascading Style Sheets Object Model,CSS对象模型)是指原始访问网页对应的CSSOM树,其中CSSOM树是一个建立在web页面上的CSS样式的映射,用于将Web页面上需要展示的网页资源信息通过样式表中的规则映射到页面对应的元素上。CSS(Cascading Style Sheets,层叠样式表)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。样式表是指存储Web页面上需要展示的网页资源信息对应的展示方式的表。

Web浏览器将DOM和CSSOM结合生成渲染树,该渲染树对每个待渲染节点进行布局处理,计算出每一个元素的大小和位置。遍历渲染树的待渲染节点将对应的像素显示到屏幕上对应的位置。待渲染节点是指渲染树中需要进行渲染的渲染节点。

S42:对渲染树进行格栅化操作,将渲染树上的所有待渲染节点转化成屏幕像素,以获取对应的目标访问网页。

栅格化是指将渲染树中的样式表存储的需要在屏幕上展示的对象,如字符串、按钮、路径或者形状的一些高级对象,显示在屏幕上的一种操作。将渲染树上的所有待渲染节点采用格栅化操作转化成屏幕像素,并基于待渲染节点中的每一个元素的大小和位置将该像素显示到屏幕上的对应位置,得到一个展示给客户端的网页页面,该网页页面为获取到的目标访问网页。

目标访问网页只在客户端显示和该网页相关的网页资源信息对应的网页内容,对于无关的网页资源信息对应的网页内容进行隐藏,有效防止广告运营商在正常的网页资源信息中插入网络广告资源信息,避免运营商进行流量广告劫持,使得用户在浏览访问网页时不会感知到该访问网页中存在网络广告资源信息,从而实现较好的防止广告运营商进行流量广告劫持的目的。

该防止广告运营商流量劫持的方法通过获取客户端发送的当前HTTP访问请求,获取待访问URL。基于当前HTTP访问请求,对待访问URL对应的原始访问网页的原始DOM树采用防劫持的软件开发包进行防劫持处理,获取目标DOM树,使目标DOM树中不包含黑名单特征标签,以使基于目标DOM树渲染出的目标访问网页,并在客户端显示目标访问网页。该目标访问网页在用户浏览访问网页时不显示广告运营商插入的网页资源信息,只显示正常的网页资源信息,从而实现较好的防止广告运营商进行流量广告劫持的目的。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2

图8示出与实施例1中防止广告运营商流量劫持的方法一一对应的防止广告运营商流量劫持的装置的原理框图。如图2所示,该防止广告运营商流量劫持的装置包括访问请求获取模块10、原始访问网页获取模块20、目标DOM树获取模块30、目标访问网页获取模块40和客户端显示模块50。其中,访问请求获取模块10、原始访问网页获取模块20、目标DOM树获取模块30、目标访问网页获取模块40和客户端显示模块50的实现功能与实施例中防止广告运营商流量劫持的方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

访问请求获取模块10,用于获取客户端发送的当前HTTP访问请求,当前HTTP访问请求包括待访问URL。

原始访问网页获取模块20,用于基于当前HTTP访问请求,获取待访问URL对应的原始访问网页,原始访问网页包括原始DOM树。

目标DOM树获取模块30,用于采用防劫持的软件开发包对原始DOM树进行防劫持处理,获取对应的目标DOM树。

目标访问网页获取模块40,用于基于目标DOM树,获取对应的目标访问网页。

客户端显示模块50,用于将目标访问网页发送给客户端,以使客户端显示目标访问网页。

优选地,目标DOM树获取模块30包括调用单元31、目标黑名单获取单元32、目标DOM树获取单元33和黑名单特征标签恢复单元34。

调用单元31,用于防劫持的软件开发包调用预先配置的黑名单库和正则表达式,黑名单库包括至少一个黑名单特征标签。

目标黑名单获取单元32,用于基于正则表达式对至少一个黑名单特征标签进行处理,获取目标黑名单。

目标DOM树获取单元33,用于删除原始DOM树中与目标黑名单相对应的至少一个DOM标签,获取对应的目标DOM树。

黑名单特征标签恢复单元34,用于在原始DOM树中的黑名单特征标签在白名单库中时,将黑名单特征标签恢复,重新加入到目标DOM树中。

优选地,在采用防劫持的软件开发包对原始DOM树进行防劫持处理的步骤之前,防止广告运营商流量劫持的装置还包括:历史HTTP访问请求获取模块301、历史访问网页获取模块302、疑似广告URL判断模块303、缓存库存储模块304和黑名单域名获取模块305。

历史HTTP访问请求获取模块301,用于获取客户端发送的历史HTTP访问请求,历史HTTP访问请求包括历史访问URL。

历史访问网页获取模块302,用于基于历史访问URL获取对应的历史访问网页,历史访问网页对应一历史DOM树。

疑似广告URL判断模块303,用于采用防劫持的软件开发包扫描历史DOM树,判断历史DOM树中是否存在疑似广告URL。

缓存库存储模块304,用于在历史DOM树中存在疑似广告URL时,将疑似广告URL存储在缓存库中。

黑名单域名获取模块305,用于基于缓存库中的疑似广告URL确定黑名单域名,并将黑名单域名存储在黑名单库中。

优选地,疑似广告URL判断模块303包括历史URL获取单元3031和疑似广告URL确认单元3032。

历史URL获取单元3031,用于采用防劫持的软件开发包扫描历史DOM树,获取历史DOM树包含的历史URL。

疑似广告URL确认单元3032,用于在历史URL的域名与历史访问URL的域名不匹配时,确定历史DOM树中存在疑似广告URL。

优选地,黑名单域名获取模块305包括:疑似域名获取单元3051和黑名单域名确认单元3052。

疑似域名获取单元3051,用于对缓存库中的每一疑似广告URL进行域名提取,获取相应的疑似域名。

黑名单域名确认单元3052,用于确定缓存库中数量达到预设值的疑似域名为黑名单域名。

优选地,防止广告运营商流量劫持的装置还包括误判恢复请求获取单元61、目标域名获取单元62、黑名单库更新单元63和白名单域名获取单元64。

误判恢复请求获取单元61,用于获取误判恢复请求,误判恢复请求包括待恢复URL。

待恢复域名获取单元62,用于调用防劫持的软件开发包中的正则表达式对待恢复URL进行域名提取,获取待恢复域名。

黑名单库更新单元63,用于将黑名单库中存储的与待恢复域名一致的黑名单域名删除,更新黑名单库。

白名单域名获取单元64,用于将黑名单库中存储的与待恢复域名一致的黑名单域名作为白名单域名,存储在白名单库中。

优选地,防止流量劫持的黑名单库创建装置还包括:疑似广告URL删除模块70,用于在疑似广告URL对应的域名存储在白名单库中时,将疑似广告URL从缓存库中删除。

优选地,目标访问网页获取模块40包括渲染树获取单元41和目标访问网页获取单元42。

渲染树获取单元41,用于基于目标DOM树和原始CSSOM树,形成渲染树,渲染树包括至少一个待渲染节点。

目标访问网页获取单元42,用于对渲染树进行格栅化操作,将渲染树上的所有待渲染节点转化成屏幕像素,以获取对应的目标访问网页。

实施例3

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中防止广告运营商流量劫持的方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中防止广告运营商流量劫持的装置中各模块/单元的功能,为避免重复,这里不再赘述。

实施例4

图9是本发明一实施例提供的终端设备的示意图。如图9所示,该实施例的终端设备90包括:处理器91、存储器92以及存储在存储器92中并可在处理器91上运行的计算机程序93,例如防止广告运营商流量劫持的程序。处理器91执行计算机程序93时实现上述各个防止广告运营商流量劫持的方法实施例中的步骤,例如图1所示的步骤S10至S50。或者,处理器91执行计算机程序93时实现上述各装置实施例中各模块/单元的功能,例如图8所示访问请求获取模块10、原始访问网页获取模块20、目标DOM树获取模块30、目标访问网页获取模块40和客户端显示模块50的功能。

示例性的,计算机程序93可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器92中,并由处理器91执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序93在终端设备90中的执行过程。例如,访问请求获取模块10、原始访问网页获取模块20、目标DOM树获取模块30、目标访问网页获取模块40和客户端显示模块50。

终端设备90可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器91、存储器92。本领域技术人员可以理解,图9仅仅是终端设备90的示例,并不构成对终端设备90的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器91可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器92可以是终端设备90的内部存储单元,例如终端设备90的硬盘或内存。存储器92也可以是终端设备90的外部存储设备,例如终端设备90上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器92还可以既包括终端设备90的内部存储单元也包括外部存储设备。存储器92用于存储计算机程序以及终端设备所需的其他程序和数据。存储器92还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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