一种爬虫检测方法、装置及电子设备与流程

文档序号:25437426发布日期:2021-06-11 21:55阅读:97来源:国知局
一种爬虫检测方法、装置及电子设备与流程

本申请涉及反爬虫技术领域,尤其涉及一种爬虫检测方法、装置、电子设备及机器可读存储介质。



背景技术:

爬虫(spider),是一种可以用于自动地抓取互联网信息的程序或脚本。如果黑客利用爬虫程序攻击网站的服务器,可能会威胁到互联网信息的安全,甚至导致该服务器无法正常地为用户提供服务。因此,需要利用反爬虫技术准确地检测出爬虫程序,从而使得反爬虫方可以采取相关的安全防护手段进行防御。

蜜罐(honeypot),本质上是一种对爬虫方进行欺骗的防御技术,可以布置一些作为诱饵的主机、网络服务或信息,诱使爬虫方对其实施攻击,从而可以对攻击行为进行捕获与分析。

在实际应用中,当爬虫方对反爬虫方基于蜜罐技术布置的“蜜罐”进行攻击时,反爬虫方可以对攻击行为进行捕获与分析,了解爬虫方所使用的工具与方法,锁定爬虫方的身份信息,推测爬虫方的攻击意图,从而能够清楚了解所面对的安全威胁,并有针对性地提高自身的安全防护能力。



技术实现要素:

本申请提供一种爬虫检测方法,应用于服务端,所述方法包括:

响应于待检测客户端发送的针对目标web页面的访问请求,向所述待检测客户端下发探测数据;

从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息;

如果未读取到与所述探测数据对应的缓存信息,则确定所述待检测客户端为爬虫程序。

可选的,响应于待检测客户端发送的针对目标web页面的访问请求,向所述待检测客户端下发探测数据,包括:

响应于待检测客户端发送的针对目标web页面的访问请求,针对所述待检测客户端进行身份识别;

如果未识别出所述待检测客户端对应的身份,则向所述待检测客户端下发探测数据。

可选的,所述探测数据包括所述目标web页面对应的页面数据中的部分数据。

可选的,所述目标web页面对应的页面数据包括所述目标web页面对应的页面内容;以及,在所述目标web页面中展示的与所述页面内容无关的页面数据;所述部分数据包括与所述目标web页面对应的页面内容无关的页面数据。

可选的,与所述目标web页面对应的页面内容无关的页面数据包括在所述目标web页面中展示的广告数据。

可选的,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息之前,还包括:

读取与所述待检测客户端对应的终端设备的物理缓存信息;

如果读取到与所述待检测客户端对应的终端设备的物理缓存信息,则进一步从所述物理缓存信息中读取与所述探测数据对应的缓存信息。

可选的,所述方法还包括:

如果未读取到与所述待检测客户端对应的终端设备的物理缓存信息,则确定所述待检测客户端为爬虫程序。

可选的,所述方法还包括:

如果读取到与所述探测数据对应的缓存信息,则检测所述读取到的缓存信息与所述探测数据是否匹配;

如果不匹配,则确定所述待检测客户端为爬虫程序。

可选的,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息,包括:

在预设时长后,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息。

可选的,所述服务端搭载了用于读取缓存信息的安全组件;

在预设时长后,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息,包括:

向所述安全组件发送获取缓存信息的异步通知,以使所述安全组件响应于所述异步通知,在预设时长后,从与所述待检

测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息。

本申请还提供一种爬虫检测装置,应用于服务端,所述装置包括:

收发单元,用于响应于待检测客户端发送的针对目标web页面的访问请求,向所述待检测客户端下发探测数据;

读取单元,用于从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息;

检测单元,用于如果未读取到与所述探测数据对应的缓存信息,则确定所述待检测客户端为爬虫程序。

可选的,所述收发单元,具体用于:

响应于待检测客户端发送的针对目标web页面的访问请求,针对所述待检测客户端进行身份识别;

如果未识别出所述待检测客户端对应的身份,则向所述待检测客户端下发探测数据。

可选的,所述探测数据包括所述目标web页面对应的页面数据中的部分数据。

可选的,所述目标web页面对应的页面数据包括所述目标web页面对应的页面内容;以及,在所述目标web页面中展示的与所述页面内容无关的页面数据;所述部分数据包括与所述目标web页面对应的页面内容无关的页面数据。

可选的,与所述目标web页面对应的页面内容无关的页面数据包括在所述目标web页面中展示的广告数据。

可选的,所述读取单元,还用于:

读取与所述待检测客户端对应的终端设备的物理缓存信息;

如果读取到与所述待检测客户端对应的终端设备的物理缓存信息,则进一步从所述物理缓存信息中读取与所述探测数据对应的缓存信息。

可选的,所述检测单元,还用于:

如果未读取到与所述待检测客户端对应的终端设备的物理缓存信息,则确定所述待检测客户端为爬虫程序。

可选的,所述检测单元,还用于:

如果读取到与所述探测数据对应的缓存信息,则检测所述读取到的缓存信息与所述探测数据是否匹配;

如果不匹配,则确定所述待检测客户端为爬虫程序。

可选的,所述读取单元,具体用于:

在预设时长后,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息。

可选的,所述服务端搭载了用于读取缓存信息的安全组件;

所述读取单元,具体用于:

向所述安全组件发送获取缓存信息的异步通知,以使所述安全组件响应于所述异步通知,在预设时长后,从与所述待检测客户端对应的终端设备的物理缓存信息中读取与所述探测数据对应的缓存信息。

本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;

所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。

本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。

通过以上实施例,一方面,由于可以将用于进行爬虫检测的探测数据,作为待检测客户端发送的针对目标web页面的访问请求的正常响应,主动下发给待检测客户端,因此可以将对疑似为爬虫程序的待检测客户端进行爬虫检测的过程,隐藏在响应针对目标web页面的访问的过程中,从而使爬虫程序不易感知到正在被检测,可以提升反爬虫检测的安全性;另一方面,通过从与待检测客户端对应的终端设备的物理缓存信息中读取与服务端下发的探测数据对应的缓存信息,来确定待检测客户端是否为爬虫程序,是一种具有隐蔽性的爬虫检测方式,可以提高反爬虫检测的成功率。

附图说明

图1是一示例性的实施例示出的一种爬虫检测方法的流程图;

图2是一示例性的实施例示出的一种爬虫检测方法的多方交互图;

图3是一示例性的实施例示出的另一种爬虫检测方法的多方交互图;

图4是一示例性的实施例示出的一种爬虫检测装置所在电子设备的硬件结构图;

图5是一示例性的实施例示出的一种爬虫检测装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的爬虫以及反爬虫的相关技术,进行简要说明。

爬虫程序通常可以通过伪造设备信息,将其恶意的数据抓取动作伪装成真实用户的操作,频繁地向web网站对应的web服务器发出页面访问请求,来自动地获取互联网中的信息资源;这种恶意的信息收集行为,由于会频繁地向web服务器发出大量的页面访问请求,可能会导致该web服务器一直处于高负荷状态,无法及时地响应真实用户的页面访问请求。

可见,爬虫程序不仅会威胁到互联网信息的安全,甚至会导致web服务器无法为真实用户正常地提供服务。

在实际应用中,反爬虫方可以针对爬虫程序的攻击原理,采取对应的反爬虫技术手段进行防御。具体地,反爬虫方可以先识别出爬虫程序,再进一步地锁定爬虫方的身份信息,分析其攻击时所使用的工具与方法,推测其攻击意图,从而有针对性地提高自身的安全防护能力。

例如,反爬虫方可以基于蜜罐技术,布置一些“蜜罐”,所谓“蜜罐”是指作为诱饵的网络设备、网络服务或信息资源等,当爬虫程序对蜜罐实施攻击时,反爬虫方可以对爬虫程序的攻击行为进行捕获和分析,以识别出爬虫程序,并针对其攻击原理,采取对应的防御手段。

在实际应用中,对于爬虫方来说,当其感知到已被锁定或者已被识别出来时,可能会更换为其他的攻击手段,以规避反爬虫手段对其的检测和防御。相应的,反爬虫方就需要重新检测爬虫程序并分析其攻击手段,并根据爬虫程序更换后的攻击手段采取对应的防御手段;如果爬虫程序更换了反爬虫方未知的攻击手段,还可能导致反爬虫方无法及时地识别出爬虫程序,从而反爬虫策略迭代的成本提高。由此可见,反爬虫方需要采取不易被爬虫方感知到的、或者爬虫方不知晓的手段,来检测爬虫程序。

有鉴于此,本说明书旨在提出一种向待检测客户端主动下发探测数据,并通过从与待检测客户端对应的终端设备的物理缓存信息中是否读取到与上述探测数据对应的缓存信息,来检测待检测客户端是否为爬虫程序的技术方案。

在实现时,服务端响应于待检测客户端发送的针对目标web页面的访问请求,向上述待检测客户端下发探测数据;

进一步地,服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息;

进一步地,如果服务端未读取到与上述探测数据对应的缓存信息,则确定上述待检测客户端为爬虫程序。

由此可见,在本说明书中的技术方案中,一方面,由于可以将用于进行爬虫检测的探测数据,作为待检测客户端发送的针对目标web页面的访问请求的正常响应,主动下发给待检测客户端,因此可以将对疑似为爬虫程序的待检测客户端进行爬虫检测的过程,隐藏在响应针对目标web页面的访问的过程中,从而使爬虫程序不易感知到正在被检测,可以提升反爬虫检测的安全性;另一方面,通过从与待检测客户端对应的终端设备的物理缓存信息中读取与服务端下发的探测数据对应的缓存信息,来确定待检测客户端是否为爬虫程序,是一种具有隐蔽性的爬虫检测方式,可以提高反爬虫检测的成功率。

下面通过具体实施例,并结合具体的应用场景对本申请进行描述。

请参见图1,图1是一示例性的实施例示出的一种爬虫检测方法的流程图,上述方法应用于服务端,上述方法执行以下步骤:

步骤102:响应于待检测客户端发送的针对目标web页面的访问请求,向上述待检测客户端下发探测数据;

步骤104:从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息;

步骤106:如果未读取到与上述探测数据对应的缓存信息,则确定上述待检测客户端为爬虫程序。

在本说明书中,上述服务端可以包括web服务端和反爬虫策略服务端,上述服务端可以是一台或多台服务器形成的服务器集群。

其中,上述web服务端可以包括与web页面对应的服务端,用于接收来自待检测客户端的针对上述web页面的访问请求,并向上述待检测客户端返回与上述web页面对应的页面数据;上述反爬虫策略服务端可以用于对待检测客户端进行爬虫检测。

例如,上述服务端,具体可以包括独立部署的web服务器和反爬虫策略服务器,也可以包括搭载有反爬虫策略、或者安装有爬虫检测程序的web服务器等。

在本说明书中,上述服务端可以对待检测客户端进行爬虫检测。

例如,反爬虫策略服务器可以响应于来自web服务器的爬虫检测请求,对上述爬虫检测请求所针对的待检测客户端进行爬虫检测。

又例如,反爬虫策略服务器可以监听web服务器所接收或发送的报文,当监听到来自待检测客户端的针对目标web页面的访问请求时,或者当监听到待检测客户端从web服务器抓取了某些信息资源时,反爬虫策略服务器可以对上述待检测客户端进行爬虫检测。

在本说明书中,上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,向上述待检测客户端下发探测数据。

在实际应用中,上述服务端可以响应于来自待检测客户端的预设的业务操作,向上述待检测客户端下发探测数据,以对上述待检测客户端进行爬虫检测。其中,上述来自待检测客户端的预设的业务操作,可以包括待检测客户端请求访问目标web页面,还可以包括待检测客户端从上述服务端获取到了目标信息资源等。

其中,上述探测数据可以包括媒体文件,如:图像文件、音频文件、视频文件等,上述探测数据还可以包括能够被缓存在终端设备中的其他类型的网页文件,如:html文件、xml文件等。需要说明的是,上述服务端向待检测客户端下发探测数据时,可以记录下发的探测数据的相关信息,如:文件名、文件大小、探测数据对应的hash值等,从而后续可以针对已下发的探测数据进行查找、读取或比较等操作;另外,关于上述媒体文件的具体格式,本说明书不做限制,如:上述图像文件的格式可以为jpg、png、svg、gif等格式,上述音频文件或视频文件的格式可以为mp3、wav、flv等格式。

例如,用户可以对服务端预先进行配置,当反爬虫策略服务器监听到web服务器接收到待检测客户端发送的针对目标web页面的访问请求时,由上述反爬虫策略服务器向上述待检测客户端下发若干探测文件。上述反爬虫策略服务器还可以记录向上述待检测客户端下发的若干探测文件的文件名、文件大小、对应的hash值等信息。

需要说明的是,在实际应用中,待检测客户端向服务端发送针对目标web页面的访问请求时,服务端可以响应于该访问请求,向待检测客户端返回与目标web页面对应的页面数据;由此可见,在本说明书中,由于服务端可以将用于进行爬虫检测的探测数据,作为对待检测客户端发送的针对目标web页面的正常响应,主动下发给待检测客户端,因此可以将对疑似为爬虫程序的待检测客户端进行爬虫检测的过程,隐藏在响应针对目标web页面的访问请求的过程中,从而使爬虫程序不易感知到正在被检测,可以提升反爬虫检测的安全性;可见,相较于相关技术中服务端直接对疑似为爬虫程序的客户端下发探测文件来进行爬虫检测的方式,本说明书中的技术方案具有较好的隐蔽性,并且服务端对待检测客户端进行爬虫检测的过程也不会对真实用户造成干扰。

另外,需要说明的是,关于探测数据的类型以及文件大小,以上仅仅是示例性的举例,并不对本说明书做限制;为了避免爬虫检测的过程导致真实用户的业务处理速度降低、或者终端设备的物理缓存被过多占用,优选的,上述服务端向待检测客户端下发的探测数据可以是文件大小较小的文件。

在示出的一种实施方式中,上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,向待检测客户端下发探测数据的过程,具体可以包括:上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,针对上述待检测客户端进行身份识别;如果上述服务端未识别出上述待检测客户端对应的身份,则向上述待检测客户端下发探测数据。

在实际应用中,上述待检测客户端向web服务端发送的针对目标web页面的访问请求中,通常可以携带用户的身份信息,还可以携带待检测客户端所在终端设备的设备信息等;在上述web服务端响应于接收到的上述访问请求后,可以根据上述访问请求中携带的用户信息或设备信息等直接对待检测客户端进行身份识别,也可以向反爬虫策略服务端发送请求,以使反爬虫策略服务端对待检测客户端进行身份识别。

例如,当反爬虫策略服务器监听到web服务器接收到了用户a通过待检测客户端发送的针对目标web页面的访问请求时,可以先根据反爬虫策略对对用户a进行身份识别;如果上述反爬虫策略服务器未识别出用户a的身份,或者并不确定用户a是否为可信任的用户,则可以向上述待检测客户端下发探测数据,以对上述待检测客户端进行爬虫检测;如果服务端可以识别出用户a为可信任的用户,则无需对其进行爬虫检测。

需要说明的是,在以上示出的实施方式中,上述服务端只需对未识别出身份的待检测客户端下发探测数据,以进行爬虫检测,而无需对可信任的真实用户也进行爬虫检测,避免造成服务器的资源浪费以及占用真实用户的终端设备的物理缓存,从而合理利用系统资源。

在示出的一种实施方式中,上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,向待检测客户端下发的探测数据,可以包括上述目标web页面对应的页面数据中的部分数据。

在实际应用中,上述探测数据,可以包括与目标web页面的页面数据无关的探测数据,仅仅是将上述探测数据随着目标web页面的页面数据一起下发给待检测客户端,以对待检测客户端进行爬虫检测;上述探测数据,也可以包括利用目标web页面的页面数据构造出的探测数据;上述探测数据,也可以包括目标web页面的页面数据中的部分数据。

例如,上述探测数据可以是一个图像文件,该图像文件与目标web页面的页面数据无关;上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,可以将该图像文件与目标web页面的页面数据一起下发给待检测客户端。

又例如,上述探测数据可以是利用目标web页面的页面数据构造出的探测文件;上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,向待检测客户端返回目标web页面的页面数据,并且可以从上述页面数据中截取出一段数据,利用截取的数据构造出探测文件,将构造出的探测文件下发给待检测客户端。上述服务端可以记录构造出的探测文件的文件名、文件大小、文件hash值等相关信息。

又例如,上述探测数据可以是目标web页面的页面数据中的部分数据;上述web服务端响应于待检测客户端发送的针对目标web页面的访问请求,向待检测客户端返回目标web页面的页面数据,上述web服务端可以将上述页面中的部分数据直接作为探测数据,并且将上述探测数据的相关信息同步给反爬虫策略服务器,以使反爬虫策略后续可以根据上述探测数据的相关信息完成对待检测客户端的爬虫检测。

需要说明的是,在以上示出的实施方式中,由于探测数据可以包括目标web页面的页面数据中的部分数据,服务端在利用上述探测数据对疑似为爬虫程序的待检测客户端进行爬虫检测时,具有更好的隐蔽性,在不对真实用户造成干扰的情况下,可以使爬虫无法轻易地发现探测数据,也不易察觉到已被服务端锁定检测。

在示出的另一种实施方式中,上述目标web页面对应的页面数据包括上述目标web页面对应的页面内容;以及,在上述目标web页面中展示的与上述页面内容无关的页面数据;上述作为探测数据向待检测客户端下发的目标web页面对应的页面数据中的部分数据,可以包括:与上述目标web页面对应的页面内容无关的页面数据。

在实际应用中,上述目标web页面对应的页面内容,可以包括与目标web页面中的重要信息有关的页面数据,如:与页面内容有关的文本数据、图像数据、音频数据等;以及在目标web页面中展示的与上述页面内容无关的页面数据,如背景图像对应的数据、广告数据等。

例如,待检测客户端向web服务器请求访问“http://ele.me”时,上述web服务器可以将与上述目标web页面对应的页面数据中,与页面内容无关的页面数据作为探测数据,如:与gui有关的图像文件等,并将上述探测数据的相关信息同步给反爬虫策略服务器,以使反爬虫策略服务器后续可以进行处理。

需要说明的是,在以上示出的实施方式中,由于探测数据可以包括与目标web页面对应的页面内容无关的页面数据,服务端在利用上述探测数据对疑似为爬虫程序的待检测客户端进行爬虫检测时,具有更好的隐蔽性,并且不会对真实用户造成干扰。

另外,需要说明的是,如果需要采取更加严格的爬虫检测方式,对待检测客户端完成爬虫检测后,才向待检测客户端返回其请求的与目标web页面对应的页面数据,那么利用与目标web页面对应的页面内容无关的页面数据作为探测数据时,既不会引起爬虫程序的察觉,也不会导致目标web页面对应的页面内容被爬虫程序抓取。

在示出的另一种实施方式中,与上述目标web页面对应的页面内容无关的页面数据,可以包括在上述目标web页面中展示的广告数据。

在实际应用中,上述广告数据,可以包括在目标web页面中以图像、音频、视频等形式展示的探测数据。

例如,服务端将一个内容为“节约粮食”的图像文件,作为探测数据下发给待检测客户端;待检测客户端接收到上述服务端下发的图像文件后,可以对其进行渲染和展示,用户访问目标web页面时,可以看到“节约粮食”的广告图片。

需要说明的是,在以上示出的实施方式中,一方面,当探测数据为广告数据时,即使待检测客户端接收到下发的探测数据后,对其进行渲染和展示,以广告的形式下发的探测数据也不会对真实用户造成过多的干扰;另一方面,如果待检测客户端不对接收到的探测数据进行渲染、展示,反爬虫方也就无需为下发的探测数据设计展示样式等,可以节约设计成本,而且也不会增加用户加载出目标web页面的时长。

在本说明书中,上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

在实际应用中,待检测客户端对于从服务端获取的网络数据,通常可以先将获取到的网络数据存储在对应的终端设备的物理缓存中,从而可以进一步地利用存储在物理缓存中的与获取到的网络数据对应的缓存信息来处理各种业务。

例如,反爬虫策略服务器可以根据待检测客户端的与网络数据对应的物理缓存路径,先读取该缓存路径下的所有物理缓存信息;反爬虫策略服务器再根据之前记录的下发的探测数据的相关信息,从读取的所有物理缓存信息中,检测是否有与下发的探测数据对应的缓存信息。

又例如,反爬虫策略服务器可以遍历检测与待检测客户端对应的终端设备的物理缓存信息;反爬虫策略服务器可以检测上述物理缓存信息中是否存在与下发的探测数据对应的缓存信息,如果存在,则读取上述与下发的探测数据对应的缓存信息;如果反爬虫策略服务器可以读取到与下发的探测文件对应的缓存信息,说明与待检测客户端对应的终端设备有物理缓存,可能是真实存在的终端设备,需要对上述读取到的缓存信息的缓存路径具体内容等信息做进一步地判断。

需要说明的是,在本说明书中,关于上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息的具体方式,以上仅仅是示例性的举例,本说明书不做限制。

在示出的一种实施方式中,上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息之前,还包括:上述服务端读取与上述待检测客户端对应的终端设备的物理缓存信息;如果读取到与上述待检测客户端对应的终端设备的物理缓存信息,则上述服务端进一步从上述物理缓存信息中读取与上述探测数据对应的缓存信息。

在实际应用中,由于爬虫程序的设备信息通常是伪造出来的、并非真实存在的,与这种伪造的设备信息对应的终端设备也并非真实存在的,因而与爬虫程序对应的终端设备也不会存在物理缓存,如:浏览器的cache、应用程序app的storage、主机的ssd等。

例如,服务端向待检测客户端下发探测数据后,可以先检测与待检测客户端对应的终端设备是否有物理缓存,具体可以包括:反爬虫策略服务器可以读取与待检测客户端对应的终端设备的所有物理缓存信息;如果反爬虫策略服务器可以读取到物理缓存信息,说明上述终端设备有对应的物理缓存,需要进一步地从读取到的物理缓存信息中,读取与上述服务端下发的探测数据对应的缓存信息。

在示出的一种实施方式中,上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息之前,还包括:上述服务端读取与上述待检测客户端对应的终端设备的物理缓存信息;如果上述服务端未读取到与上述待检测客户端对应的终端设备的物理缓存信息,则确定上述待检测客户端为爬虫程序。

例如,服务端向待检测客户端下发探测数据后,可以先读取与待检测客户端对应的终端设备的物理缓存信息,来检测与待检测客户端对应的终端设备是否有物理缓存;如果服务端未读取到物理缓存信息,说明上述终端设备没有对应的物理缓存,即可以认为上述终端设备并非是真实存在的设备,服务端可以确定待检测客户端为爬虫程序。

需要说明的是,在以上示出的实施方式中,服务端在检测与待检测客户端对应的终端设备的物理缓存信息中是否有与下发的探测数据对应的缓存信息之前,可以先检测与待检测客户端对应的终端设备是否有物理缓存,一方面,可以更快地识别出在伪造的终端设备上运行的爬虫程序;另一方面,如果爬虫方企图通过为伪造的终端设备增加物理缓存的方式来突破上述爬虫检测方式,可以增加爬虫方的技术成本。

在本说明书中,如果上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中未读取到与上述探测数据对应的缓存信息,则确定上述待检测客户端为爬虫程序。

例如,反爬虫策略服务器向上述待检测客户端下发了探测文件,反爬虫策略服务器可以根据预先配置的缓存路径,从与待检测客户端对应的终端设备的物理缓存信息中读取与下发的探测文件对应的缓存信息;如果反爬虫策略服务器没有读取到与下发的探测文件对应的缓存信息,说明与待检测客户端对应的终端设备并非真实存在的终端设备,可以确定上述待检测客户端为爬虫程序。

需要说明的是,通过从与待检测客户端对应的终端设备的物理缓存信息中读取与服务端下发的探测数据对应的缓存信息的结果,来确定待检测客户端是否为爬虫程序,是一种具有隐蔽性的爬虫检测方式;由于上述通过终端设备的物理属性来检测爬虫的方式还未被业界广泛知晓,可以避免爬虫程序发现正在被锁定、识别,并在被发现后立刻结束攻击,从而为追踪爬虫方的身份、分析爬虫方的进攻手段和意图留出时间从而实现较好的反爬虫效果;上述爬虫检测方式还可以避免爬虫程序被发现后,爬虫方可能采取其他手段,来继续抓取信息或攻击服务器,导致反爬虫策略迭代的成本增加。

在示出的另一种实施方式中,如果上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取到与上述探测数据对应的缓存信息,则可以进一步地检测上述读取到的缓存信息与上述探测数据是否匹配;如果不匹配,则确定上述待检测客户端为爬虫程序。

在实际应用中,对于从服务端获取的与目标web页面对应的页面数据,待检测客户端通常可以将获取到的网络数据缓存在固定的目录路径中;由于上述服务端响应于待检测客户端发送的针对目标web页面的访问请求,向待检测客户端下发探测数据,上述待检测客户端可以将上述探测数据与上述服务端返回的与目标web页面对应的页面数据一起缓存在固定的目录路径中。而对于利用真实设备并在虚拟机中运行的爬虫程序,即使在终端设备的物理缓存信息中可以读取到与上述探测数据对应的缓存信息,读取到与探测数据对应的缓存信息的目录路径也可能是上述真实设备的物理缓存中与上述虚拟机对应的目录路径,而不是上述真实设备用于缓存网络数据的目录路径。

例如,反爬虫策略服务器向上述待检测客户端下发了探测文件,反爬虫策略服务器可以从与待检测客户端对应的终端设备的物理缓存信息中读取与下发的探测文件对应的缓存信息;如果反爬虫策略服务读取到了与下发的探测文件对应的缓存信息,则可以进一步地检测读取到的探测文件对应的缓存信息与之前记录的下发的探测文件的文件信息是否匹配;如果不匹配,说明待检测客户端接收到服务端下发的探测数据后,无法将其缓存在对应的终端设备的物理缓存中,或者无法像真实的物理设备一样对网络数据进行缓存,则可以确定待检测客户端为爬虫程序。

需要说明的是,在以上示出的实施方式中,通过对比从与待检测客户端对应的终端设备的物理缓存信息中读取到的探测数据对应的缓存信息与服务端下发的探测数据是否匹配,由于虚拟机的缓存方式与真实物理设备的缓存方式存在差异,可以识别出在虚拟机上运行的爬虫程序。

通过以上技术方案可知,一方面,由于可以将用于进行爬虫检测的探测数据,作为待检测客户端发送的针对目标web页面的访问请求的正常响应,主动下发给待检测客户端,因此可以将对疑似为爬虫程序的待检测客户端进行爬虫检测的过程,隐藏在响应针对目标web页面的访问的过程中,从而使爬虫程序不易感知到正在被检测,可以提升反爬虫检测的安全性;另一方面,通过从与待检测客户端对应的终端设备的物理缓存信息中读取与服务端下发的探测数据对应的缓存信息,来确定待检测客户端是否为爬虫程序,是一种具有隐蔽性的爬虫检测方式,可以提高反爬虫检测的成功率。

为了方便理解实现上述爬虫检测方法的过程中的多方交互,下面以与目标web页面对应的web服务端搭载有反爬虫策略为例,对本申请进行描述。

请参见图2,图2是一示例性的实施例示出的一种爬虫检测方法的多方交互图,上述方法应用于web服务端,上述web服务端上搭载有反爬虫策略;上述爬虫检测方法执行以下步骤:

步骤201:发送针对目标web页面的访问请求;

步骤202:返回目标web页面对应的页面数据,并下发探测数据;

步骤203:从与待检测客户端对应的物理设备的物理缓存信息中读取与上述探测数据对应的缓存信息;

步骤204:返回读取的结果;

步骤205:如果未读取到与上述探测数据对应的缓存信息,则确定待检测客户端为爬虫程序。

在本说明书中,步骤201-步骤205的具体实现方式与上述步骤102-步骤106相似,在此不再赘述。

在示出的一种实施方式中,在预设时长后,从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

在实际应用中,用户可以根据需求配置预设时长,以使上述服务端向待检测客户端下发探测数据后,等待预设时长后,再从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息,从而使爬虫程序不易察觉到服务端向其下发探测数据与读取缓存信息之间的关联,不易察觉到已被服务端锁定并识别,可以延缓爬虫程序的反应时间。

例如,用户预先配置的预设时长为2分钟;上述web服务端搭载的反爬虫策略向待检测客户端下发探测数据后,等待2分钟后,再从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

在示出的一种实施方式中,上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息的过程,可以包括:上述服务端向上述待检测客户端发送针对与上述待检测客户端对应的终端设备的物理缓存信息的读取请求;上述待检测客户端响应于所述读取请求,确定是否保存了与上述服务端对应的授权信息;如果有,则上述服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

在实际应用中,上述服务端读取与待检测客户端对应的终端设备的物理缓存信息之前,可以先向待检测客户端发送读取请求,以使待检测客户端授权服务端读取终端设备的物理缓存信息。

例如,web服务端先向待检测客户端发送读取请求,以使待检测客户端响应于上述读取请求,确定是否保存了与上述服务端对应的授权信息;如果待检测客户端保存了与上述服务端对应的授权信息,则允许服务端从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

需要说明的是,在以上示出的实施方式中,一方面,服务端在获得待检测客户端的用户授权后,才读取与待检测客户端对应的终端设备的物理缓存信息,可以在对待检测客户端进行爬虫检测的同时,保证终端设备的物理缓存信息中用户信息的隐私,从而提升用户体验;另一方面,对于未授权的待检测客户端,服务端还可以进一步地确定导致上述情况出现的原因,是用户未授权读取权限,还是爬虫程序对读取请求无响应。

下面以上述服务端包括web服务器和反爬虫策略服务器为例,对本申请进行描述。

请参见图3,图3是一示例性的实施例示出的另一种爬虫检测方法的多方交互图,上述方法应用于服务端,上述服务端包括web服务器和反爬虫策略服务器;上述反爬虫策略服务器搭载了用于读取缓存信息的安全组件;上述爬虫检测方法执行以下步骤:

步骤301:发送针对目标web页面的访问请求;

步骤302:发送针对待检测客户端的爬虫检测请求;

步骤303:针对待检测客户端进行身份识别;

步骤304:如果未识别出待检测客户端的身份,则向待检测客户端下发探测数据;

步骤305:向安全组件发送获取缓存信息的异步通知;

步骤306:从与待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息;

步骤307:返回读取的结果;

步骤308:如果未读取到与上述探测数据对应的缓存信息,则确定待检测客户端为爬虫程序。

在本说明书中,步骤301-步骤308的具体实现方式与上述步骤102-步骤106相似,在此不再赘述。

在示出的一种实施方式中,上述服务端在预设时长后,从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息的过程,可以包括:上述服务端向上述安全组件发送获取缓存消息的异步通知,以使上述安全组件响应于上述异步通知,在预设时长后,从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

例如,用户为反爬虫策略服务器配置的预设时长为2分钟;反爬虫策略服务器向待检测客户端下发探测数据后,可以等待2分钟后,再向安全组件发送获取缓存信息的异步通知;上述安全组件接收到上述异步通知后,可以立刻从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

又例如,反爬虫策略服务器向待检测客户端下发探测数据后,向安全组件发送获取缓存信息的异步通知;上述安全组件接收到上述异步通知后,可以按照预设时长,等待2分钟后再从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

需要说明的是,在以上示出的实施方式中,由于反爬虫策略服务器用于下发探测数据以及根据读取到的缓存信息进行判断,安全组件用于读取缓存信息,二者属于异步链路,可以降低服务端的开销,并且延缓爬虫程序的反应时间。

与上述爬虫检测方法的实施例相对应,本说明书还提供了一种爬虫检测装置的实施例。

本说明书的爬虫检测装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参见图4,图4是一示例性的实施例示出的一种爬虫检测装置所在电子设备的硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参见图5,图5是一示例性的实施例示出的一种爬虫检测装置的框图。该爬虫检测装置可以应用于图4所示的电子设备;上述爬虫检测装置可以包括:

收发单元501,用于响应于待检测客户端发送的针对目标web页面的访问请求,向上述待检测客户端下发探测数据;

读取单元502,用于从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息;

检测单元503,用于如果未读取到与上述探测数据对应的缓存信息,则确定上述待检测客户端为爬虫程序。

在本实施例中,上述收发单元501,具体用于:

响应于待检测客户端发送的针对目标web页面的访问请求,针对上述待检测客户端进行身份识别;

如果未识别出上述待检测客户端对应的身份,则向上述待检测客户端下发探测数据。

在本实施例中,上述探测数据包括上述目标web页面对应的页面数据中的部分数据。

在本实施例中,上述目标web页面对应的页面数据包括上述目标web页面对应的页面内容;以及,在上述目标web页面中展示的与上述页面内容无关的页面数据;上述部分数据包括与上述目标web页面对应的页面内容无关的页面数据。

在本实施例中,上述与上述目标web页面对应的页面内容无关的页面数据包括在上述目标web页面中展示的广告数据。

在本实施例中,上述读取单元502,还用于:

读取与上述待检测客户端对应的终端设备的物理缓存信息;

如果读取到与上述待检测客户端对应的终端设备的物理缓存信息,则进一步从上述物理缓存信息中读取与上述探测数据对应的缓存信息。

在本实施例中,上述检测单元503,还用于:

如果未读取到与上述待检测客户端对应的终端设备的物理缓存信息,则确定上述待检测客户端为爬虫程序。

在本实施例中,上述检测单元503,还用于:

如果读取到与上述探测数据对应的缓存信息,则检测上述读取到的缓存信息与上述探测数据是否匹配;

如果不匹配,则确定上述待检测客户端为爬虫程序。

在本实施例中,上述读取单元502,具体用于:

在预设时长后,从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

在本实施例中,上述服务端搭载了用于读取缓存信息的安全组件;

上述读取单元502,具体用于:

向上述安全组件发送获取缓存消息的异步通知,以使上述安全组件响应于上述异步通知,在预设时长后,从与上述待检测客户端对应的终端设备的物理缓存信息中读取与上述探测数据对应的缓存信息。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

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