CN114036360A - 网络爬虫拦截方法、装置、电子设备及可读存储介质 - Google Patents
网络爬虫拦截方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114036360A CN114036360A CN202111202727.4A CN202111202727A CN114036360A CN 114036360 A CN114036360 A CN 114036360A CN 202111202727 A CN202111202727 A CN 202111202727A CN 114036360 A CN114036360 A CN 114036360A
- Authority
- CN
- China
- Prior art keywords
- access
- identifier
- access log
- request
- logs
- 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.)
- Pending
Links
Images
Classifications
-
- 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/951—Indexing; Web crawling techniques
-
- 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]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种网络爬虫拦截方法、装置、电子设备及可读存储介质,边缘节点每次接收到来自第一终端设备的访问请求后,根据该访问请求生成访问日志并发送至缓存器。计算集群实时读取消息队列中的第一访问日志,根据访问日志包含的域名从消息队列中读取包含多条包含该域名的访问日志,之后,根据多条访问日志确定第一访问日志对应的访问请求是否为恶意请求。该过程中,由于消息队列中的访问日志来自全网的边缘节点,计算集群对该全网数据进行分析,能够快速、准确的识别出恶意的网络爬虫。倘若有新的网络爬虫,只需要更新计算集群上的分析模型,无需对每个边缘节点的防护软件进行升级,速度快、过程简单。
Description
技术领域
本申请涉及网络安全技术领域,特别涉及一种网络爬虫拦截方法、装置、电子设备及可读存储介质。
背景技术
网络爬虫,也叫网络蜘蛛,通常根据网页的地址来寻找网页的统一资源定位符(Uniform Resource Locator,URL),进而根据URL爬取网站内容。
为了防止网络爬虫爬取网站内容,业界通过机器人协议对网络爬虫的行为进行规范,机器人协议也称之为爬虫协议、robots协议等。然而,一些恶意的网络爬虫并不遵守机器人协议,传统的机器人协议无法拦截该类恶意的网络爬虫。为此,内容分发网络(ContentDelivery Network,CDN)中,在边缘节点部署防护软件,利用边缘节点对恶意的网络爬虫进行检测与防护。边缘节点接收到来自终端设备的超文本传输协议(Hyper Text TransferProtocol,HTTP)请求后,分析HTTP请求中的互联网协议(Internet Protocol,IP)地址、用户代理 (User-Agent,UA)等唯一特征以识别出恶意的网络爬虫,同时结合黑白名单管理、反复违规惩罚等,从而在边缘节点拦截恶意的网络爬虫。
然而,CDN网络中,边缘节点众多,各个边缘节点相互独立,防护软件升级维护工作量大、操作步骤繁琐。
发明内容
本申请提供一种网络爬虫拦截方法、装置、电子设备及可读存储介质,计算集群实时采集全网数据并快速分析海量数据以检测出恶意的网络爬虫,速度快、升级维护工作量小,实现快速提高网络安全性的目的。
第一方面,本申请实施例提供一种网络拦截方法,应用于计算集群,该方法包括:
读取消息队列中的第一访问日志,所述消息队列是缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到的;
根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志;
根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
第二方面,本申请实施例提供一种网络拦截方法,应用于边缘节点,该方法包括:
接收来自第一终端设备的访问请求;
根据所述访问请求生成访问日志;
向缓存器发送所述访问日志,以使得所述缓存器按照接收顺序对来自至少一个边缘节点的访问日志排序得到消息队列。
第三方面,本申请实施例提供一种网络爬虫拦截装置,包括:
读取模块,用于读取消息队列中的第一访问日志,所述消息队列是缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到的;根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志;
处理模块,根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
第四方面,本申请实施例提供一种网络爬虫拦截装置,包括:
接收模块,用于接收来自第一终端设备的访问请求;
处理模块,用于根据所述访问请求生成访问日志;
发送模块,用于向缓存器发送所述访问日志,以使得所述缓存器按照接收顺序对来自至少一个边缘节点的访问日志排序得到消息队列,所述消息队列中位于第一访问日志之后、且与所述第一访问日志包含相同域名的多条访问日志,用于确定所述第一访问日志对应的访问请求是否为恶意请求。
第五方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
第六方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第二方面或第二方面各种可能的实现方式所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第一方面或第一方面各种可能的实现方式所述的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第二方面或第二方面各种可能的实现方式所述的方法。
第九方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
第十方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第二方面或第二方面各种可能的实现方式所述的方法。
本申请实施例提供的网络爬虫拦截方法、装置、电子设备及可读存储介质,边缘节点每次接收到来自第一终端设备的访问请求后,根据该访问请求生成访问日志并发送至缓存器,缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到消息队列。计算集群实时读取消息队列中的第一访问日志,根据访问日志包含的域名从消息队列中读取包含多条包含该域名的访问日志,之后,根据多条访问日志确定第一访问日志对应的访问请求是否为恶意请求。该过程中,由于消息队列中的访问日志来自全网的边缘节点,计算集群对该全网数据进行分析,能够快速、准确的识别出恶意的网络爬虫。倘若有新的网络爬虫,只需要更新计算集群上的分析模型,无需对每个边缘节点的防护软件进行升级,速度快、过程简单。而且,由于是对全网数据进行实时分析,因此,不会漏掉恶意的网络爬虫,实现提高网络安全性的目的。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的网络爬虫拦截方法的一个实施环境示意图;
图1B是本申请实施例提供的网络爬虫拦截方法的另一个实施环境示意图;
图2是本申请实施例提供的网络爬虫拦截方法的流程图;
图3是本申请实施例提供的网络爬虫拦截方法的另一流程图;
图4是本申请实施例提供的网络爬虫拦截方法的又一个流程图;
图5为本申请实施例提供的一种网络爬虫拦截装置的示意图;
图6为本申请实施例提供的网络爬虫拦截装置的另一个示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
现阶段,机器人协议是网站跟网络爬虫间的协议,机器人协议通常为简单的txt格式的文本等。基于机器人协议的防护中,通过简单的txt格式文本方式告诉网络爬虫被允许的权限。当一个网络爬虫访问一个站点时,它首先检查该站点根目录下是否存在robots.txt文件,如果存在,网络爬虫就会按照该文件中的内容来确定访问的范围;如果该文件不存在,网络爬虫将能够访问网站上所有没有被口令保护的页面。
然而,一些恶意的网络爬虫并不遵守机器人协议,上述的机器人协议并不能有效防止恶意的网络爬虫爬取网站内容。恶意的网络爬虫爬取网站的核心内容的同时,占用大量的带宽、计算资源等,严重损害被爬网站的多种利益。例如,恶意的网络爬虫通过Bot工具大量爬取网站的优惠资源,转卖后二次获利,严重影响商家的正常运营。再如,恶意的网络爬虫将网站的核心内容爬取并复制到其他网站,极大影响核心网站在搜索引擎上的排名,导致网站的访问量和广告收益下降。
CDN加速网络中,终端设备发起的访问请求会根据访问者所在的区域分散到各地区的边缘节点。恶意爬虫模拟正常访问者的访问请求爬取网站内容,这些恶意请求也会传输到边缘节点。为了拦截恶意的网络爬虫,CDN厂商在边缘节点上部署防护软件,在给网站加速的同时,利用边缘节点对恶意的网络爬虫进行检测与防护,实现对网站的安全防护。恶意网络爬虫防护过程中,边缘节点通过分析HTTP请求中的IP、UA、客户端标识等唯一特征来识别恶意的网络爬虫。同时,边缘节点结合黑白名单管理、反复违规惩罚、超过访问次数后限制访问行为等精细化策略,直接在边缘节点对恶意爬虫信息识别与拦截。
随着互联网的飞速发展,恶意的网络爬虫呈现出攻击特征变化频繁、爬取行为多变的特征,传统的基于边缘节点的拦截方法分析的特征过于单一,无法准确识别并拦截恶意的网络爬虫。而且,基于边缘节点的拦截方法中防护软件部署在边缘节点,而边缘节点数量庞大,导致防护软件的升级维护比较麻烦。升级维护周期长。例如,假设CDN网络中有1000个边缘节点,当出现新的网络爬虫时,需要对各个边缘节点上的防护软件进行升级维护,升级周期长,难以在短时间内成功升级并上线拦截。
另外,基于边缘节点的拦截方法中,每个边缘节点只能检测到经过自身的访问请求,在恶意的网络爬虫较为分散的场景下,很容易无法识别并不拦截某些恶意爬虫。比如,一个时间窗内,若一个IP地址被访问的次数大于或等于10,则认为访问该IP地址的访问请求是恶意请求。但是,由于每个边缘节点的计算独立的,很有可能恶意的网络爬虫发起的10个访问请求正好被发送给10个不同的边缘节点。这个时候,每个边缘节点认为只有一次访问,边缘节点感受不到访问请求到达阈值,导致无法识别并拦截恶意的网络爬虫。也就是说,现有的基于边缘节点的防护方法容易漏掉某些恶意的网络爬虫。
另外,对于出现频率较低的恶意网络爬虫,边缘节点需要对一段较长时间的数据分析才能检测出恶意的爬虫行为。然而,每个边缘节点的计算资源有限,难以对较长时间周期的历史数据进行分析。因此,基于边缘节点的拦截方法无法识别并拦截低频率的网络爬虫。
为此,本申请实施例提供一种网络爬虫拦截方法,采用通用的数据采集、流式计算、大数据存储等技术来实现恶意爬虫的检测。不仅适用于CDN,同样适用于各种分布式部署的系统,通用性好、可扩展性较强。
图1A是本申请实施例提供的网络爬虫拦截方法的一个实施环境示意图。请参照图1A,本实施例环境包括:计算集群11、边缘节点12、缓存器13、存储器14、第一终端设备15和第二终端设备16。
第一终端设备15可以是硬件也可以是软件。当第一终端设备15为硬件时,第一终端设备15例如为安装有安卓操作系统、微软操作系统、塞班操作系统、 Linux操作系统或苹果iOS操作系统的手机、平板电脑、个人电脑、电子书阅读器、膝上型便携电脑、台式计算机等。当第一终端设备15为软件时,其可以安装在上述列举的硬件设备中,此时,第一终端设备15例如为多个软件模块或单个软件模块等,本申请实施例并不限制。第一终端设备15上安装办公类应用、即时通讯类应用、购物类应用等。CDN网络中,第一终端设备15通过边缘节点 12接入CDN网络。第一终端设备15发起访问请求后,根据就近原则等接入边缘节点12,边缘节点12根据第一终端设备15发起的访问请求生成访问日志并发送给缓存器13,缓存器13对各边缘节点的访问日志排序得到消息队列。
计算集群11也称之为流计算集群、流式计算集群等,是多个计算服务器组成的一个集群,用于对消息队列中的访问日志进行实时分析,通过对全网的访问日志进行实时分析,能够快速在海量数据中检测出恶意的爬虫,并防止漏掉某些恶意的网络爬虫。
缓存器13可以集成在计算集群11上,也可以单独设置,用于对各边缘节点的访问日志进行排序得到消息队列。通过先进先出原则,将消息队列中的访问日志以流的形式输送给计算集群11,供计算集群11对全网数据进行实时分析。缓存器13中存储的访问日志有限,一个消息队列满了之后,一旦访问日志被输送给计算集群11,则新的访问日志会加入到消息队列中并排在最后面。
存储器14可以集成在计算集群11上,也可以单独设置,用于存储一段时间内的访问日志,例如,存储24小时内的访问日志、48小时内的访问日志等。缓存器13每次接收到访问日志后,都将该访问日志发送给存储器14。计算集群 11定期对存储器14内的访问日志进行分析,以防止漏掉出现频率较低的恶意爬虫。
计算集群11实时分析缓存器13中的访问日志确定出恶意的网络爬虫后,或者,计算集群11定期对存储器14中的访问日志进行离线分析得到恶意的网络爬虫之后,向各边缘节点12发送拦截指令,该拦截指令携带待拦截的客户端标识、IP地址、域名或URL中的至少一个。边缘节点12接收到拦截指令后,根据拦截指令对来自第一终端设备15的访问请求进行拦截。
第二终端设备16例如为运维人员的台式机、笔记本等,通过第二终端设备 16向计算集群11发送配置请求,以请求配置界面。通过配置界面,可灵活的配置要分析访问日志包含的哪些特征,并设置一些阈值,如IP地址的预设数量、 URL的预设数量等。计算集群11根据该些设置对访问日志进行分析。例如,通过配置界面设置的特征包括IP地址和URL,则计算集群11从访问日志中提取 IP地址和URL,并判断IP地址的数量、URL的数量等。
图1B是本申请实施例提供的网络爬虫拦截方法的另一个实施环境示意图。请参照图1B,本实施例与上述图1A的区别在于:本实施环境还包括:离线组件17、配置管理中心18、配置文件集群19和zookeeper集群20。其中,离线组件17例如为服务器等,用于对存储器14中的访问日志进行离线分析以确定出低频率的恶意网络爬虫。
配置管理中心18用于根据计算集群11或离线组件17识别出的恶意网络爬虫生成配置文件,并将配置文件上传至配置文件集群19;同时,更新zookeeper 集群20的节点信息,该节点信息用于指示配置文件集群19上的配置文件发生更新。边缘节点12监听zookeeper集群20,一旦监听到节点信息发生变化,则从配置文件集群19获取配置文件,配置文件用于指示待拦截的客户端标识、IP 地址、域名或URL中的至少一个。之后,边缘节点12根据配置文件对来自第一终端设备15的访问请求进行拦截。
下面,基于图1A和图1B所示架构,对本申请实施例所述的网络爬虫拦截方法进行详细说明。示例性的,请参见图2。
图2是本申请实施例提供的网络爬虫拦截方法的流程图。本实施例是从计算集群、缓存器、边缘节点交互的角度进行说明。本实施例包括:
201、边缘节点接收来自第一终端设备的访问请求。
示例性的,用户打开第一终端设备上的APP、浏览器等,从而向边缘节点发送访问请求。
202、边缘节点根据访问请求生成访问日志。
示例性的,边缘节点根据访问请求发起的时间、访问请求中携带的域名、IP 地址、UA、URL等生成访问日志。
203、边缘节点向缓存器发送访问日志。
相应的,缓存器接收该访问日志。由于第一终端设备的数量庞大,每个第一终端设备根据就近原则等接入边缘节点。一段时间内,缓存器能够接收到多个边缘节点发送的访问日志。缓存器根据各访问日志的接收时间对访问日志进行排序,从而得到消息队列。最先接收到的访问日志排在消息队列的最前面。由于消息队列中存储了来自各个边缘节点的访问日志,因此,可以将消息队列中的访问日志理解为全网数据。
204、计算集群从消息队列中读取第一访问日志。
示例性的,实时分析过程中,计算集群实时读取消息队列中的访问日志。例如,计算集群每1毫秒读取一次访问日志。以下将该访问日志称之为第一访问日志。或者,计算集群按照域名对消息队列中的访问日志进行分流,以得到按照域名区分的多个访问日志流。对于任意一个访问日志流,第一访问日志是该访问日志流中的任意一个访问日志。
205、计算集群根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志。
206、根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
示例性的,每条访问日志均包含各自的域名。为了确定第一访问日志对应的访问请求是否为恶意请求,计算集群读取到第一访问日志后,则继续从消息队列中读取访问日志,根据多条与第一访问日志包含相同域名的访问日志确定第一访问日志对应的访问请求是否为恶意请求。
计算集群上预先部署多个分析模型,计算集群可以利用一个或多个分析模型对多条访问日志进行分析,从而识别出恶意的网络爬虫。例如,计算集群分析多条访问日志中各访问日志的客户端标识,从而确定第一访问日志对应的访问请求是否为恶意请求。再如,计算集群分析多条访问日志中各访问日志包含的UA、IP地址等,从而确定第一访问日志对应的访问请求是否为恶意请求。
本申请实施例提供的网络爬虫拦截方法,边缘节点每次接收到来自第一终端设备的访问请求后,根据该访问请求生成访问日志并发送至缓存器,缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到消息队列。计算集群实时读取消息队列中的第一访问日志,根据访问日志包含的域名从消息队列中读取包含多条包含该域名的访问日志,之后,根据多条访问日志确定第一访问日志对应的访问请求是否为恶意请求。该过程中,由于消息队列中的访问日志来自全网的边缘节点,计算集群对该全网数据进行实时流式分析,能够在海量数据中快速、准确的识别出恶意的网络爬虫。倘若有新的网络爬虫,只需要更新计算集群上的分析模型,无需对每个边缘节点的防护软件进行升级,速度快、过程简单。而且,由于是对全网数据进行实时分析,因此,不会漏掉恶意的网络爬虫,实现提高网络安全性的目的。
本申请实施例中,计算集群识别恶意的网络爬虫包括:实时分析访问日志以识别恶意的网络爬虫,以及离线分析大量的历史访问日志以识别出恶意的网络爬虫。
实时分析过程中,计算集群从缓存器中读取第一访问日志,根据第一访问日志包含的域名、客户端标识等识别并拦截恶意的网络爬虫。
图3是本申请实施例提供的网络爬虫拦截方法的另一流程图。本实施例中,计算集群实时分析访问日志以识别并拦截恶意的网络爬虫。本实施例包括:
301、计算集群按照域名分流访问日志。
示例性的,计算集群不断读取消息队列中的访问日志,每次读取到访问日志后,根据该访问日志包含的域名,对访问日志分流。例如,一条访问日志包含的域名为“google.com”,另一条访问日志包含的域名为“developer.android.com”,则计算集群将该两个访问日志分到不同的访问日志流中。
302、计算集群读取第一访问日志,并判断第一访问日志中是否包含第一标识,若第一访问日志中包含第一标识,则执行步骤303;若第一访问日志中不包含第一标识,则执行步骤306。
示例性的,边缘节点每次接收到访问请求后,判断该访问请求中是否包含第一标识或第二标识,若该访问请求中既不携带第一标识也不携带第二标识,则边缘节点认为这是第一终端设备第一次发起访问请求,因此,边缘节点为第一终端设备分配一个第一标识并向第一终端设备发送指示信息,该指示信息携带所述第一标识和目标操作。该指示信息用于指示第一终端设备对所述第一标识执行所述目标操作得到第二标识后再发送携带所述第二标识的访问请求。其中,第一标识和第二标识都是客户端标识,边缘节点分配给第一终端设备的第一标识也称之为预分配客户端标识(PreClientID),第一终端设备对第一标识执行目标操作生成的第二标识也称之为客户端标识(ClientID)。
边缘节点为第一终端设备分配第一标识的同时,边缘节点针对该既不携带第一标识也不携带第二标识的访问请求生成包含第一访问日志。之后,边缘节点将第一访问日志发送给缓存器。显然,若第一访问日志包含第一标识,则说明第一访问日志对应的访问请求是初始请求,该访问请求未携带第一标识或第二标识。
另外,当访问请求携带第二标识时,说明第一终端设备发起该访问请求之前,已经接收到携带第一标识和目标操作的指示信息,并对第一标识执行目标操作生成第二标识。此时,边缘节点针对该包含第二标识的访问请求生成包含第二标识的访问请求。
本申请实施例中,恶意的网络爬虫通常为一段代码,黑客利用该段代码爬取网站内容。恶意的网络爬虫不会执行目标操作,例如,目标操作是对第一标识乘以2,则当第一标识为“111”时,倘若第一终端设备是正常用户的终端设备,则第一终端设备接收到携带第一标识和目标操作的指示信息后,对第一标识执行目标操作能够得到第二标识,且该第二标识为“222”,之后,第一终端设备发起的访问请求都会携带该第二标识,例如将第二标识携带在HTTP请求的某个字段中。
若第一终端设备为黑客的终端设备,其不会执行目标操作,则第一终端设备接收到目标操作和第一标识后,无法对第一标识执行目标操作从而得到第二标识。第一终端设备接收到携带第一标识和目标操作的指示信息,认为爬取失败。此时,黑客通过修改恶意爬虫代码等方式获取第二标识。若黑客获取到第二标识,则发起携带第二标识的访问请求以骗取信任;若黑客无法获取到第二标识,则无法爬取网站内容。
根据上述可知:从计算集群的角度,计算集群每次从消息队列中读取到第一访问日志后,对第一访问日志分流的同时,判断第一访问日志包含的客户端标识为第一标识还是第二标识。若第一访问日志包含第一标识,则说明该访问请求是初始访问请求,无法确定第一访问日志对应的访问请求是否为恶意请求。此时,计算集群执行步骤303;若第一访问日志不包含第一标识而是包含第二标识,则计算集群认为:第一终端设备可能为一个能够执行目标操作的、正常用户的终端设备,访问请求是一个正常的访问请求;或者,第一终端设备也可能为一个能够通过非法方式获取到第二标识的黑客的终端设备,访问请求为恶意的访问请求。为了防止误判,计算集群执行步骤306。
303、计算集群确定所述多条访问日志中是否存在包含第二标识的第二访问日志,若多条访问日志中存在包含第二标识的第二访问日志,则执行步骤304;若多条访问日志中不存在包含第二标识的第二访问日志,则执行步骤305。
示例性的,计算集群读取到第一访问日志后,解析第一访问日志获取域名。之后,继续从消息队列中读取访问日志,将与第一访问日志包含相同域名的访问日志划分为同一个访问日志流。例如,9:00整时,计算集群确定出第一访问日志包含第一标识,则计算集群设定10分钟的时间窗,该时间窗从9:00开始至 9:10分结束,针对该时间窗分配一个内存空间。该时间窗内,计算集群继续读取消息队列,一旦读取到与第一访问日志包含相同域名的访问日志,则将该访问日志输送至该时间窗对应的内存空间,判断该访问日志是否包含第二标识,若整个时间窗内存在至少一条包含第二标识的访问日志,则执行步骤304;若整个时间窗结束后,没有一条访问日志包含第二标识,则执行步骤305。
304、计算集群确定第一访问日志对应的访问请求不是恶意请求。
例如,从9:00开始至9:10分这个时间窗内,9:05时,计算集群读取到一条与第一访问日志包含相同域名且包含第二标识的访问日志,则计算集群认为第一访问日志对应的访问请求不是恶意请求,而是正常用户发起的访问请求。也就是说,虽然第一访问日志不包含第二标识,但是自第一终端设备发起初始的访问请求之后,10分钟之内,第一终端设备接收到携带第一标识和目标操作的指示信息后,对第一标识执行目标操作生成第二标识后,后续发起的访问请求携带第二标识。该过程中,时间窗的长度可根据网络延迟等设定,本申请实施例并不限制。
305、计算集群确定第一访问日志对应的访问请求是恶意请求。
采用该种方案,当第一访问日志中包含第一标识时,计算集群通过设定时间窗的方式确定第一访问日志对应的访问请求是否为恶意请求,准确度高。
另外,当第一访问日志中包含第一标识时,边缘节点仅仅是将第一标识和目标操作携带在指示信息中发送给第一终端设备,并未将网站上的内容发送给第一终端设备,相当于拦截了一次恶意的访问请求。
306、计算集群从第一访问日志中提取出第二标识。
示例性的,由于边缘节点生成访问日志时,若访问请求即不携带第一标识也不携带第二标识,则生成包含第一标识的访问日志;若访问请求携带第二标识,则生成包含第二标识的访问日志。本步骤中,计算集群解析第一访问日志以得到第二标识。
307、计算集群根据第二标识构建时间窗。
该时间窗的长度例如为3分钟、5分钟、10分钟等,本申请实施例并不限制。
308、计算集群增量计算不同的IP数。
示例性的,当一个访问请求携带第二标识时,有可能是第一终端设备为一个正常用户的终端设备,其能够获取到第一标识和目标操作,并对第一标识执行目标操作从而得到第二标识。还有一种可能就是:黑客非法获取到第二标识,并将第二标识携带在访问请求中以骗取信任。此时,计算集群继续根据多维度特征分析访问日志,从而判断第一访问日志对应的访问请求是否为恶意请求。其中,多维度包括客户端标识和IP地址维度、IP地址维度和URL维度等。
本步骤中,当一个访问请求携带第二标识时,为了防止误判,计算集群继续从消息队列中读取访问日志,将与第一访问日志包含相同域名且包含第二标识的访问日志划分为同一个访问日志流。以下将与第一访问日志包含相同域名且包含第二标识的访问日志称之为第二访问日志。
同时,计算集群确定所述多个第二访问日志中各第二访问日志包含的IP地址,以得到不同IP地址的数量。示例性的,每次读取到第二访问日志后,从该第二访问日志中提取出IP地址。由于有些第二访问日志包含相同的IP地址,因此,只有在提取出不同IP地址的时候,才将IP地址的数量增1。
309、计算集群判断IP地址的数量是否超过预设数量,若IP地址的数量超过预设数量,则执行步骤305。若IP地址的数量未超过预设数量,则执行步骤304。
示例性的,在步骤307构建的时间窗内,计算集群继续读取消息队列,一旦读取到与第一访问日志包含相同IP地址、相同第二标识的第二访问日志,则从第二访问日志中提取出IP地址,判断IP地址的数量是否超过预设数量。若整个时间窗内IP地址的数量均未超过预设数量,则执行步骤304;若时间窗内,某次读取到第二访问日志后,IP地址的数量超过预设数量,则执行步骤305。
例如,时间窗的长度为5分钟,起始时间为8:00,截止时间为8:05分,预设数量为10。假设8:04分时,IP地址的数量为11,则说明多个恶意的网络爬虫携带同一个第二标识,通过不同的IP地址发起访问,此时,计算集群执行步骤 305;若截止8:05分,IP地址的数量都小于11,则计算集群执行步骤304。
采用该种方案,当第一访问日志包含第二标识时,计算集群通过对多条访问日志的客户端标识、IP地址等进行统计以确定第一访问日志对应的访问请求是否为恶意请求,能够防止误判。
可选的,上述实施例中,不论是实时分析访问日志以识别恶意请求,还是离线分析访问日志以识别恶意请求,计算集群都能够通过分析访问日志中的多维度特征,从而识别出恶意的网络爬虫。
实时多维度分析过程中,计算集群从消息队列中读取多条访问日志,从所述多条访问日志中的每条访问日志中提取出至少两个特征。之后,计算集群根据从所述多条访问日志中每条访问日志提取出的至少两个特征,确定所述第一访问日志对应的访问请求是否为恶意请求,所述至少两个特征包括所述访问请求包含的任意两个字段,所述访问请求包含的字段包括客户端标识、IP地址、用户代理UA或统一资源定位符URL。例如,每次读取到第一访问日志后,计算集群确定该第一访问日志包含的域名、客户端标识等,之后,从消息队列中读取包含相同域名、客户端标识的多条访问日志,对该些访问日志中的IP地址等进行增量计算,从而确定出第一访问日志对应的方位请求是否为恶意请求。
采用该种方案,通过实时、多维度关联分析,能够应对恶意网络爬虫攻击特征变化频繁、爬取行为复杂多变的场景。
下面,以至少两个特征为IP地址和URL为例,对上述实时多维度分析进行详细说明。示例性的,请参见图4。图4是本申请实施例提供的网络爬虫拦截方法的又一个流程图。本实施例包括:
401、计算集群按照域名分流访问日志。
具体可参见行数图3实施例步骤301的描述,此处不再赘述。
402、计算集群为每个域名的访日日志流分配时间窗。
示例性的,计算集群根据第二终端设备上传的配置等,为每个域名配置时间窗。例如,针对域名“google.com”,将时间窗设置为5分钟,针对域名“developer.android.com”,将时间窗设置为8分钟。
403、针对每个域名的访问日志流,计算集群确定各访问日志中的IP地址。
恶意的网络爬虫经常会动态变化IP地址、UA等特征来绕过边缘节点的拦截。因此,计算集群可实时分析并指定特定特征并检测出异常行为。例如,预先通过第二终端设备指定计算集群分析IP地址和URL。
计算集群每次从消息队列中读取到第一访问日志后,确定该第一访问日志归属的访问日志流,进而确定该访问日志流中每个访问日志包含的IP地址。
404、对于每一个IP地址,计算集群确定包含该IP地址的访问日志的数量。
示例性的,属于同一个访问日志流的访问日志均包含相同的域名。但是,该些访问日志中的各访问日志包含的IP地址可能相同,也可能不相同。
例如,包含第一访问日志的访问日志流包含40个访问日志。该40个访问日志中,20个访问日志包含IP地址1,10个访问日志包含IP地址2,另外10 个访问日志包含IP地址3。
405、针对每个IP地址,计算集群确定该IP地址对应的访问日志的数量是否超过预设阈值,若该IP地址对应的访问日志的数量超过预设阈值,则执行步骤406;若该IP地址对应的访问日志的数量未超过预设阈值,则执行步骤409。
继续沿用步骤404中的例子,假设第一访问日志包含的IP地址为IP地址1,以下将包含IP地址1且与第一访问日志包含相同域名的访问日志称之为第三访问日志,则第三访问日志的数量为20,假设预设阈值为15,则计算集群执行步骤406;若预设阈值为30,则计算集群执行步骤409。
406、计算集群提取各第三访问日志中的URL。
407、计算集群判断不同URL的数量是否超过预设URL数量,若不同URL 的数量超过预设URL数量,则计算集群执行步骤408;若不同URL的数量未超过预设URL数量,则计算集群执行步骤409。
第三访问日志的数量为20,该20个第三访问日志包含的URL相同或不同。计算集群统计URL的数量。比如,该20个第三访问日志中,10个第三访问日志包含URL a,5个第三访问日志包含URL b,其余5个第三访问日志包含URL c,则不同URL的数量为3。假设预设URL数量为5,则计算集群执行步骤409;假设预设URL数量为2,则计算集群执行步骤408。
408、计算集群确定第一访问日志对应的访问请求为恶意请求。
409、计算集群确定第一访问日志对应的访问请求不是恶意请求。
采用该种方案,计算集群通过对实时指定的特征进行分析以识别并拦截恶意的网络爬虫,能够防止恶意爬虫通过动态变化IP地址、UA等绕过边缘节点的拦截的,爬虫识别与拦截的准确率高。
离线分析过程中,计算集群对存储器中的全部或部分访问日志进行分析。分析过程中,计算集群按照存储器中各访问日志包含的域名,将所述存储器中的访问日志分流以得到多个访问日志流,属于同一访问日志流的各访问日志包含相同的域名,所述存储器中存储来自所述缓存器的访问日志。之后,确定目标访问日志流中各访问日志包含的至少两个特征,以确定目标访问日志流包含的访问日志对应的访问请求中是否存在恶意请求。
示例性的,存储器中存储一天、三天、一个星期或一个月的访问日志。计算集群定期对该些访问日志进行离线分析,能够识别出出现频率较低的网络爬虫。例如,计算集群每天对存储器中访问日志进行离线分析;或者,计算集群每周对存储器中访问日志进行一次离线分析。分析过程中,计算集群可分析客户端标识、IP地址、UA、URL、域名等特征中的一个或多个。具体可参见图4 实施例,此处不再赘述。
需要说明的是,虽然该方案中,计算集群对存储器中的访问日志进行离线分析。然而,本申请实施例并不以此为限制,其他可行的实现方式中,如图1B 所示,也可以单独设置一个离线组件,利用该离线组件对存储器中的访问日志进行离线分析。
采用该种方案,通过定期离线分析存储器中的访问日志,实现识别出出现频率较低的恶意网络爬虫的目的。
可选的,上述实施例中,离线分析或者实时分析之前,可通过第二终端设备向计算集群指示待分析的特征、预设阈值、预设URL数量等。指示过程中,第二终端设备向计算集群发送用于请求配置界面的配置请求;相应的计算集群接收该配置请求,并向第二终端设备返回用于显示所述配置界面的数据流。第二终端设备接收到数据流后,显示配置界面,供运维人员设置待分析的至少两个特征、预设阈值、预设URL数量等。之后,点击配置界面上的“提交”按钮。计算集群根据运维人员的设置确定待分析的至少两个特征等,并根据该些特征进行实时分析或离线分析。
另外,通过配置界面,还可以配置哪些域名的访问日志流需要离线分析、哪些域名的访问日志流需要实时在线分析、哪些域名的访问日志需要同时进行在线分析和离线分析等。
采用该种方案,通过配置界面指定待分析的特征等,灵活度高且操作过程简单。
可选的,上述实施例中,计算集群对访问日志进行多维度的实时分析或离线分析后,若识别出恶意的网络爬虫,则向至少一个边缘节点中的各边缘节点发送拦截指令,所述拦截指令携带待拦截的客户端标识、IP地址、域名或URL 中的至少一个。
例如,拦截指令携带客户端标识,该客户端标识例如为上述的第二标识。边缘节点接收到拦截指令后,对所有携带第二标识的访问请求进行拦截。再如,拦截指令携带IP地址和客户端标识,该客户端标识例如为上述的第二标识,边缘节点接收到拦截指令后,对所有携带第二标识和IP地址的访问请求进行拦截。
采用该种方案,计算集群识别出恶意的网络爬虫后,直接向边缘节点下发拦截指令,使得边缘节点根据拦截指令对访问请求进行拦截,实现快速拦截恶意的网络爬虫的目的。
请参照图1B,计算集群识别出恶意的网络爬虫后,也可以通过配置管理中心下发拦截。这种实施环境中,计算集群向管理配置中心发送任务配置指令,该任务配置指令用于指示管理配置中心生产配置文件并将配置文件上传至配置文件集群。同时,计算集群触发zookeeper集群更新节点信息,该节点信息用于指示文件集群上的配置文件发生更新,配置文件用于指示待拦截的客户端标识、 IP地址、域名或URL中的至少一个。
示例性的,计算集群实时分析访问日志识别出恶意的网络爬虫后,或者,计算集群对存储器中的访问日志进行离线分析,识别出恶意的网络爬虫之后,计算集群向管理配置中心发送任务配置指令,该任务配置指令携带配置文件名称、版本号、组件名称等。其中,组件名称例如为实时分析组件、离线分析组件的名称,配置文件名称用于指示恶意的网络爬虫对应的客户端标识、IP地址等。
配置管理中心维护一份组件名称和配置文件路径的映射关系。配置文件接收到任务配置指令后,生成配置文件以及映射关系。之后,配置管理文件将配置文件上传至配置文件集群。配置文件集群中存储各个版本的配置文件。同时,配置管理中心向zookeeper集群下发节点信息,该节点信息包括更新的配置文件的名称、版本号以后映射关系等。
边缘节点监听zookeeper集群,一旦监听到变化的节点信息,则从配置文件集群获取最新的配置文件并更新。同时,删除旧版本的配置文件。之后,边缘节点根据配置文件对来自第一终端设备的访问请求进行拦截。
另外,请参照图1B,离线分析组件识别出出现频率较低的恶意网络爬虫之后,也可以向配置管理中心发送任务配置指令,以使得配置管理中心生成配置文件并上传至配置文件集群。
采用该种方案,恶意网络爬虫的相关配置文件存储在配置文件集群,方便追踪的同时,若在CDN网络中新增边缘节点,则可以直接从配置文件集群获取最新的配置文件,避免新增边缘节点无法拦截恶意网络爬虫。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5为本申请实施例提供的一种网络爬虫拦截装置的示意图。该网络爬虫拦截装置500包括:读取模块51、处理模块52。
读取模块51,用于读取消息队列中的第一访问日志,所述消息队列是缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到的;根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志;
处理模块52,根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
一种可行的实现方式中,所述处理模块52,用于当所述第一访问日志包含第一标识时,确定所述多条访问日志中是否存在包含第二标识的第二访问日志,所述第一标识是所述访问请求中未携带客户端标识时所述边缘节点分配给所述第一终端设备的,所述第二标识是所述第一终端设备对所述第一标识执行目标操作生成的;若所述多条访问日志中不存在所述第二访问日志,则确定所述第一访问日志对应的访问请求为恶意请求。
一种可行的实现方式中,所述处理模块52,用于从所述多条访问日志中的每条访问日志中提取出至少两个特征;根据从所述多条访问日志中每条访问日志提取出的至少两个特征,确定所述第一访问日志对应的访问请求是否为恶意请求,所述至少两个特征包括所述访问请求包含的任意两个字段,所述访问请求包含的字段包括客户端标识、IP地址、用户代理UA或统一资源定位符URL。
一种可行的实现方式中,所述处理模块52,用于当所述至少两个特征为客户端标识和IP地址、当所述第一访问日志包含的客户端标识为第二标识时,从所述多条访问日志中确定出包含所述第二标识的第二访问日志,以得到多个第二访问日志;确定所述多个第二访问日志中各第二访问日志包含的IP地址,以得到不同IP地址的数量;当不同IP地址的数量超过预设数量时,确定所述第一访问日志对应的访问请求为恶意请求。
一种可行的实现方式中,所述处理模块52,用于当所述至少两个特征为IP 地址和URL时,根据所述第一访问日志包含的IP地址,从所述多条访问日志中确定出包含所述IP地址的第三访问日志;当所述第三访问日志的数量大于预设阈值时,提取各所述第三访问日志中的URL;当不同URL的数量超过预设URL 数量时,确定所述第一访问日志对应的访问请求为恶意请求。
一种可行的实现方式中,所述处理模块52,还用于按照存储器中各访问日志包含的域名,将所述存储器中的访问日志分流以得到多个访问日志流,属于同一访问日志流的各访问日志包含相同的域名,所述存储器中存储来自所述缓存器的访问日志;分析目标访问日志流中各访问日志包含的至少两个特征,以确定目标访问日志流包含的访问日志对应的访问请求中是否存在恶意请求。
可选的,再请参照图5,一种可行的实现方式中,上述的网络爬虫拦截装置 500还包括:
收发模块53,用于在所述处理模块52从所述多条访问日志中的每条访问日志中提取出至少两个特征之前,接收来自第二终端设备的配置请求,所述配置请求用于请求配置界面;向所述第二终端设备发送用于显示所述配置界面的数据流;接收所述第二终端设备通过所述配置界面发送的配置请求,所述配置请求用于指示所述至少两个特征。
一种可行的实现方式中,收发模块53,用于在所述处理模块52根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求之后,当所述第一访问日志对应的访问请求为恶意请求时,向所述至少一个边缘节点中的各边缘节点发送拦截指令,所述拦截指令携带待拦截的客户端标识、IP地址、域名或URL中的至少一个。
一种可行的实现方式中,收发模块53,用于在所述处理模块52根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求之后,向管理配置中心发送任务配置指令,所述任务配置指令用于指示管理配置中心生产配置文件、上传至配置文件集群,并触发zookeeper集群更新节点信息,所述节点信息用于指示文件集群上的配置文件发生更新,所述配置文件用于指示待拦截的客户端标识、IP地址、域名或URL中的至少一个。
本申请实施例提供的网络爬虫拦截装置,可以执行上述实施例中计算集群的动作,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的网络爬虫拦截装置的另一个示意图。该网络爬虫拦截装置600包括:接收模块61、处理模块62和发送模块63。
接收模块61,用于接收来自第一终端设备的访问请求;
处理模块62,用于根据所述访问请求生成访问日志;
发送模块63,用于向缓存器发送所述访问日志,以使得所述缓存器按照接收顺序对来自至少一个边缘节点的访问日志排序得到消息队列,所述消息队列中位于第一访问日志之后、且与所述第一访问日志包含相同域名的多条访问日志,用于确定所述第一访问日志对应的访问请求是否为恶意请求。
一种可行的实现方式中,所述处理模块62,用于当所述访问请求未携带第一标识时,生成包含所述第一标识的访问日志;当所述访问请求携带第二标识时,生成包含所述第二标识的访问日志,所述第二标识是所述第一终端设备对所述第一标识执行目标操作生成的。
一种可行的实现方式中,所述处理模块62,还用于当所述访问请求未携带第一标识时,为所述第一终端设备分配所述第一标识;
所述发送模块63,还用于向所述第一终端设备发送携带所述第一标识和目标操作的指示消息,以指示所述第一终端设备对所述第一标识执行所述目标操作得到第二标识后再发送携带所述第二标识的访问请求。
一种可行的实现方式中,所述接收模块61,在所述发送模块63向缓存器发送所述访问日志之后,还用于接收来自计算集群的拦截指令,所述拦截指令携带待拦截的客户端标识、IP地址、域名或URL中的至少一个;
所述发送模块63,还用于根据所述拦截指令拦截所述第一终端设备发起的访问请求。
一种可行的实现方式中,所述处理模块62,在所述发送模块63向缓存器发送所述访问日志之后,还用于监听zookeeper集群以确定所述zookeeper集群上的节点信息是否发生更新,所述节点信息用于指示文件集群上的配置文件是否发生更新;若监听到所述节点信息更新,则从所述文件集群获取更新的配置文件并替换掉本地的配置文件;根据从所述文件集群获取的配置文件进行访问拦截。
本申请实施例提供的网络爬虫拦截装置,可以执行上述实施例中边缘节点的动作,其实现原理和技术效果类似,在此不再赘述。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备700例如为上述的计算集群或边缘节点,该电子设备700包括:
处理器71和存储器72;
所述存储器72存储计算机指令;
所述处理器71执行所述存储器72存储的计算机指令,使得所述处理器71执行如上计算集群实施的网络爬虫拦截方法;或者,使得所述处理器71执行如上边缘节点实施的网络爬虫拦截方法。
处理器71的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
可选地,该电子设备700还包括通信部件73。其中,处理器71、存储器72以及通信部件73可以通过总线74连接。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如上计算集群或边缘节点实施的网络爬虫拦截方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包含计算机程序,计算机程序被处理器执行时实现如上计算集群或边缘节点实施的网络爬虫拦截方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (18)
1.一种网络爬虫拦截方法,其特征在于,应用于计算集群,包括:
读取消息队列中的第一访问日志,所述消息队列是缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到的;
根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志;
根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求,包括:
当所述第一访问日志包含第一标识时,确定所述多条访问日志中是否存在包含第二标识的第二访问日志,所述第一标识是所述访问请求中未携带客户端标识时所述边缘节点分配给第一终端设备的,所述第二标识是所述第一终端设备对所述第一标识执行目标操作生成的;
若所述多条访问日志中不存在所述第二访问日志,则确定所述第一访问日志对应的访问请求为恶意请求。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求,包括:
从所述多条访问日志中的每条访问日志中提取出至少两个特征;
根据从所述多条访问日志中每条访问日志提取出的至少两个特征,确定所述第一访问日志对应的访问请求是否为恶意请求,所述至少两个特征包括所述访问请求包含的任意两个字段,所述访问请求包含的字段包括客户端标识、IP地址、用户代理UA或统一资源定位符URL。
4.根据权利要求3所述的方法,其特征在于,所述至少两个特征为客户端标识和IP地址,所述根据从所述多条访问日志中每条访问日志提取出的至少两个特征,确定所述第一访问日志对应的访问请求是否为恶意请求,包括:
当所述第一访问日志包含的客户端标识为第二标识时,从所述多条访问日志中确定出包含所述第二标识的第二访问日志,以得到多个第二访问日志;
确定所述多个第二访问日志中各第二访问日志包含的IP地址,以得到不同IP地址的数量;
当不同IP地址的数量超过预设数量时,确定所述第一访问日志对应的访问请求为恶意请求。
5.根据权利要求3所述的方法,其特征在于,所述至少两个特征为IP地址和URL,所述根据从所述多条访问日志中每条访问日志提取出的至少两个特征,确定所述第一访问日志对应的访问请求是否为恶意请求,包括:
根据所述第一访问日志包含的IP地址,从所述多条访问日志中确定出包含所述IP地址的第三访问日志;
当所述第三访问日志的数量大于预设阈值时,提取各所述第三访问日志中的URL;
当不同URL的数量超过预设URL数量时,确定所述第一访问日志对应的访问请求为恶意请求。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
按照存储器中各访问日志包含的域名,将所述存储器中的访问日志分流以得到多个访问日志流,属于同一访问日志流的各访问日志包含相同的域名,所述存储器中存储来自所述缓存器的访问日志;
分析目标访问日志流中各访问日志包含的至少两个特征,以确定目标访问日志流包含的访问日志对应的访问请求中是否存在恶意请求。
7.根据权利要求3-5任一项所述的方法,其特征在于,所述从所述多条访问日志中的每条访问日志中提取出至少两个特征之前,还包括:
接收来自第二终端设备的配置请求,所述配置请求用于请求配置界面;
向所述第二终端设备发送用于显示所述配置界面的数据流;
接收所述第二终端设备通过所述配置界面发送的配置请求,所述配置请求用于指示所述至少两个特征。
8.根据权利要求3-5任一项所述的方法,其特征在于,所述根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求之后,还包括:
当所述第一访问日志对应的访问请求为恶意请求时,向所述至少一个边缘节点中的各边缘节点发送拦截指令,所述拦截指令携带待拦截的客户端标识、IP地址、域名或URL中的至少一个。
9.根据权利要求3-5任一项所述的方法,其特征在于,所述根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求之后,还包括:
向管理配置中心发送任务配置指令,所述任务配置指令用于指示管理配置中心生产配置文件、上传至配置文件集群,并触发zookeeper集群更新节点信息,所述节点信息用于指示文件集群上的配置文件发生更新,所述配置文件用于指示待拦截的客户端标识、IP地址、域名或URL中的至少一个。
10.一种网络爬虫拦截方法,其特征在于,应用于边缘节点,包括:
接收来自第一终端设备的访问请求;
根据所述访问请求生成访问日志;
向缓存器发送所述访问日志,以使得所述缓存器按照接收顺序对来自至少一个边缘节点的访问日志排序得到消息队列,所述消息队列中位于第一访问日志之后、且与所述第一访问日志包含相同域名的多条访问日志,用于确定所述第一访问日志对应的访问请求是否为恶意请求。
11.根据权利要求10所述的方法,其特征在于,所述根据所述访问请求生成访问日志,包括:
当所述访问请求未携带第一标识时,生成包含所述第一标识的访问日志;
当所述访问请求携带第二标识时,生成包含所述第二标识的访问日志,所述第二标识是所述第一终端设备对所述第一标识执行目标操作生成的。
12.根据权利要求11所述的方法,其特征在于,还包括:
当所述访问请求未携带第一标识时,为所述第一终端设备分配所述第一标识;
向所述第一终端设备发送携带所述第一标识和目标操作的指示消息,以指示所述第一终端设备对所述第一标识执行所述目标操作得到第二标识后再发送携带所述第二标识的访问请求。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述向缓存器发送所述访问日志之后,还包括:
接收来自计算集群的拦截指令,所述拦截指令携带待拦截的客户端标识、IP地址、域名或URL中的至少一个;
根据所述拦截指令拦截所述第一终端设备发起的访问请求。
14.根据权利要求10-12任一项所述的方法,其特征在于,所述向缓存器发送所述访问日志之后,还包括:
监听zookeeper集群以确定所述zookeeper集群上的节点信息是否发生更新,所述节点信息用于指示文件集群上的配置文件是否发生更新;
若监听到所述节点信息更新,则从所述文件集群获取更新的配置文件并替换掉本地的配置文件;
根据从所述文件集群获取的配置文件进行访问拦截。
15.一种网络爬虫拦截装置,其特征在于,包括:
读取模块,用于读取消息队列中的第一访问日志,所述消息队列是缓存器按照接收顺序对来自至少两个边缘节点的访问日志排序得到的;根据所述第一访问日志包含的域名,从所述消息队列中依次读取多条包含所述域名的访问日志;
处理模块,根据所述多条访问日志,确定所述第一访问日志对应的访问请求是否为恶意请求。
16.一种网络爬虫拦截装置,其特征在于,包括:
接收模块,用于接收来自第一终端设备的访问请求;
处理模块,用于根据所述访问请求生成访问日志;
发送模块,用于向缓存器发送所述访问日志,以使得所述缓存器按照接收顺序对来自至少一个边缘节点的访问日志排序得到消息队列,所述消息队列中位于第一访问日志之后、且与所述第一访问日志包含相同域名的多条访问日志,用于确定所述第一访问日志对应的访问请求是否为恶意请求。
17.一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时使得所述电子设备实现如权利要求1至14任一所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至14任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111202727.4A CN114036360A (zh) | 2021-10-15 | 2021-10-15 | 网络爬虫拦截方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111202727.4A CN114036360A (zh) | 2021-10-15 | 2021-10-15 | 网络爬虫拦截方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036360A true CN114036360A (zh) | 2022-02-11 |
Family
ID=80135010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111202727.4A Pending CN114036360A (zh) | 2021-10-15 | 2021-10-15 | 网络爬虫拦截方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036360A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884671A (zh) * | 2022-04-21 | 2022-08-09 | 微位(深圳)网络科技有限公司 | 服务器的入侵防御方法、装置、设备及介质 |
CN117118824A (zh) * | 2023-10-20 | 2023-11-24 | 成都卓拙科技有限公司 | 一种日志数据收集方法及设备 |
-
2021
- 2021-10-15 CN CN202111202727.4A patent/CN114036360A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884671A (zh) * | 2022-04-21 | 2022-08-09 | 微位(深圳)网络科技有限公司 | 服务器的入侵防御方法、装置、设备及介质 |
CN114884671B (zh) * | 2022-04-21 | 2024-04-26 | 微位(深圳)网络科技有限公司 | 服务器的入侵防御方法、装置、设备及介质 |
CN117118824A (zh) * | 2023-10-20 | 2023-11-24 | 成都卓拙科技有限公司 | 一种日志数据收集方法及设备 |
CN117118824B (zh) * | 2023-10-20 | 2024-02-27 | 成都卓拙科技有限公司 | 一种日志数据收集方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11765198B2 (en) | Selecting actions responsive to computing environment incidents based on severity rating | |
CN110213212B (zh) | 一种设备的分类方法和装置 | |
CN111131320B (zh) | 资产识别方法、装置、系统和介质 | |
WO2017074472A1 (en) | Network aware distributed business transaction anomaly detection | |
US10084637B2 (en) | Automatic task tracking | |
CN110210213B (zh) | 过滤恶意样本的方法及装置、存储介质、电子装置 | |
CN111885007B (zh) | 信息溯源方法、装置、系统及存储介质 | |
CN114036360A (zh) | 网络爬虫拦截方法、装置、电子设备及可读存储介质 | |
US10067862B2 (en) | Tracking asynchronous entry points for an application | |
US9535811B2 (en) | Agent dynamic service | |
CN109729095B (zh) | 数据处理方法、装置和计算设备及介质 | |
WO2016175850A1 (en) | Detection of node.js memory leaks | |
US10775751B2 (en) | Automatic generation of regular expression based on log line data | |
CN113923008B (zh) | 一种恶意网站拦截方法、装置、设备及存储介质 | |
CN110955890B (zh) | 恶意批量访问行为的检测方法、装置和计算机存储介质 | |
US10191844B2 (en) | Automatic garbage collection thrashing monitoring | |
CN108595957B (zh) | 浏览器主页篡改检测方法、装置及存储介质 | |
CN113746790B (zh) | 一种异常流量管理方法、电子设备及存储介质 | |
CN113794731B (zh) | 识别基于cdn流量伪装攻击的方法、装置、设备和介质 | |
CN111368039B (zh) | 一种数据管理系统 | |
CN115051867A (zh) | 一种非法外联行为的检测方法、装置、电子设备及介质 | |
CN111176782B (zh) | 一种在线实验方法和装置 | |
CN111385293A (zh) | 一种网络风险检测方法和装置 | |
CN111078975A (zh) | 一种多节点增量式数据采集系统及采集方法 | |
US20230224318A1 (en) | Application security testing based on live traffic |
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 |