CN114338146B - 一种基于动态码的反爬虫方法、系统、客户端和服务器 - Google Patents

一种基于动态码的反爬虫方法、系统、客户端和服务器 Download PDF

Info

Publication number
CN114338146B
CN114338146B CN202111619899.1A CN202111619899A CN114338146B CN 114338146 B CN114338146 B CN 114338146B CN 202111619899 A CN202111619899 A CN 202111619899A CN 114338146 B CN114338146 B CN 114338146B
Authority
CN
China
Prior art keywords
dynamic code
target
algorithm
client
ciphertext
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
Application number
CN202111619899.1A
Other languages
English (en)
Other versions
CN114338146A (zh
Inventor
余张春
张顺红
姜兵
陈淼杰
胡建强
安海平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Travelsky Technology Co Ltd
Original Assignee
China Travelsky Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Travelsky Technology Co Ltd filed Critical China Travelsky Technology Co Ltd
Priority to CN202111619899.1A priority Critical patent/CN114338146B/zh
Publication of CN114338146A publication Critical patent/CN114338146A/zh
Application granted granted Critical
Publication of CN114338146B publication Critical patent/CN114338146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请公开了一种基于动态码的反爬虫方法、系统、客户端和服务器,在接收到访问请求的情况下,从各个动态码算法中,筛选出与客户端的可疑等级对应的动态码算法,作为目标动态码算法。从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码。从剩余的动态码中,选取满足预设条件的动态码,作为第二动态码。对第二动态码进行加密,得到第二动态码密文。将目标动态码算法、第一动态码、以及第二动态码密文,发送给客户端,触发客户端计算得到目标动态码。将第二动态码与目标动态码进行比较。在第二动态码与目标动态码不相同的情况下,向客户端发送无权访问提示。可见,利用本申请所述方案,能够提高网络爬虫拦截的有效性。

Description

一种基于动态码的反爬虫方法、系统、客户端和服务器
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于动态码的反爬虫方法、系统、客户端和服务器。
背景技术
国内航空业迅速发展,航空公司逐步建立了自己的电商网站,用于提供机票在线查询、销售、售后服务,及发布静态公告信息。机票价格和服务变得高效、透明,为了获取更多的航空公司的机票报价,存在一些网络工具(例如网络爬虫),不间断的访问某一个或多个航空公司的机票查询页面,这些询价访问对应航空公司而言,造成了极大的困扰(例如拖累网站的运行速度、增加网站运维成本、阻碍客户的正常购票行为)。
目前,较为常用的反爬虫手段,通常为:HTTP请求头分析拦截。然而,HTTP请求头的信息是浏览器封装的,但是可以很容易通过工具模拟产生,同时可以预设多套浏览器信息,在访问的时候随机使用、动态变化,预设的请求头信息采用高仿真的数据,服务器无法分辨出是真实的访问、还是网络爬虫的访问,从而不能有效拦截爬虫请求。
为此,如何有效拦截网络爬虫,成为航司网站亟需解决的问题。
发明内容
本申请提供了一种基于动态码的反爬虫方法、系统、客户端和服务器,目的在于提高网络爬虫拦截的有效性。
为了实现上述目的,本申请提供了以下技术方案:
一种基于动态码的反爬虫方法,应用于服务器,包括:
在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
对所述第二动态码进行加密,得到第二动态码密文;
将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端,触发所述客户端计算得到目标动态码;
在接收到所述客户端发送的所述目标动态码的情况下,将所述第二动态码与所述目标动态码进行比较;
在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
可选的,所述从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法,包括:
调用大数据服务,对所述客户端的历史浏览信息进行数据挖掘,得到所述客户端的可疑等级;所述可疑等级用于指示所述客户端与网络爬虫的相似度;
将与所述可疑等级对应的算法难度,标识为目标算法难度;所述算法难度用于指示动态码算法的复杂度;
从预存的各个所述动态码算法中,筛选出与所述目标算法难度对应的动态码算法,作为目标动态码算法。
可选的,所述n的取值基于所述可疑等级所确定,包括:
将与所述可疑等级对应的计算次数,标识为目标计算次数;所述计算次数用于指示动态码算法的迭代计算次数;
将所述目标计算次数作为n的取值。
可选的,还包括:
在所述第二动态码与所述目标动态码相同的情况下,向所述客户端发送所述访问请求所指示的资源信息。
一种基于动态码的反爬虫方法,应用于客户端,包括:
向服务器发送访问请求;
接收所述服务器基于所述访问请求发送的信息;所述信息包括目标动态码算法、第一动态码、以及第二动态码密文;
将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码。
一种服务器,包括:
筛选单元,用于在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
第一选取单元,用于从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
第二选取单元,用于从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
加密单元,用于对所述第二动态码进行加密,得到第二动态码密文;
第一发送单元,用于将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端,触发所述客户端计算得到目标动态码;
比较单元,用于在接收到所述客户端发送的所述目标动态码的情况下,将所述第二动态码与所述目标动态码进行比较;
第二发送单元,用于在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
可选的,所述筛选单元具体用于:
调用大数据服务,对所述客户端的历史浏览信息进行数据挖掘,得到所述客户端的可疑等级;所述可疑等级用于指示所述客户端与网络爬虫的相似度;
将与所述可疑等级对应的算法难度,标识为目标算法难度;所述算法难度用于指示动态码算法的复杂度;
从预存的各个所述动态码算法中,筛选出与所述目标算法难度对应的动态码算法,作为目标动态码算法。
可选的,还包括:
第三发送单元,用于在所述第二动态码与所述目标动态码相同的情况下,向所述客户端发送所述访问请求所指示的资源信息。
一种客户端,包括:
请求单元,用于向服务器发送访问请求;
接收单元,用于接收所述服务器基于所述访问请求发送的信息;所述信息包括目标动态码算法、第一动态码、以及第二动态码密文;
计算单元,用于将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
发送单元,用于向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码。
一种基于动态码的反爬虫系统,包括:
服务器和客户端;
所述服务器,用于:
在接收到所述客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
对所述第二动态码进行加密,得到第二动态码密文;
将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端;
所述客户端,用于:
将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码;
所述服务器,还用于:
将所述第二动态码与所述目标动态码进行比较;
在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
本申请提供的技术方案,在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与客户端的可疑等级对应的动态码算法,作为目标动态码算法。从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码。目标动态码信息为:使用目标动态码算法,预先生成的动态码信息。从剩余的动态码中,选取满足预设条件的动态码,作为第二动态码。预设条件为:将第一动态码作为目标动态码算法的初始输入,通过目标动态码算法进行n次迭代计算后,所得到的动态码,n的取值基于可疑等级所确定。对第二动态码进行加密,得到第二动态码密文。将目标动态码算法、第一动态码、以及第二动态码密文,发送给客户端,触发客户端计算得到目标动态码。在接收到客户端发送的目标动态码的情况下,将第二动态码与目标动态码进行比较。在第二动态码与目标动态码不相同的情况下,向客户端发送无权访问提示。基于客户端的可疑等级,确定目标动态码算法的算法难度、以及迭代计算的次数,并将目标动态码算法、第一动态码和第二动态码密文发送给客户端。客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本申请所述方案,能够提高网络爬虫拦截的有效性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种基于动态码的反爬虫系统的架构示意图;
图1b为本申请实施例提供的一种服务器与客户端之间的信息交互示意图;
图2为本申请实施例提供的一种基于动态码的反爬虫方法的示意图;
图3为本申请实施例提供的另一种基于动态码的反爬虫方法的示意图;
图4为本申请实施例提供的一种服务器的架构示意图;
图5为本申请实施例提供的一种客户端的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1a所示,为本申请实施例提供的一种基于动态码的反爬虫系统的架构示意图,包括:
服务器100和客户端200。
其中,服务器和客户端之间的信息交互,如图1b所示,包括如下步骤:
S101:服务器使用动态码算法,预先生成动态码信息。
其中,动态码信息包括多个动态码。
具体的,动态码算法要求输出定长(即指一个存储器或资料单元中,所能存放的字符数是固定不变的)的字符串,并且能接受一个参数(例如随机数)作为计算的基础。在本申请实施例中,使用动态码算法,生成动态码信息的过程为:首先生成一个随机数,作为动态码算法的初始输入;经过动态码算法计算之后返回一个定长的字符串,即得到第一个动态码,对应的计算步长设为1;将得到的第一个动态码,作为下一次计算的输入,经过动态码算法计算之后返回一个字符串,即得到第二个动态码,对应的计算步长设为2;如此循环带入计算,生成一百万个动态码;集合计算得到的所有动态码,组建一套动态码信息。
需要说明的是,动态码算法具有多种类型,且不同类型的动态码算法的算法难度也会有所不同,可以使用不同算法难度的动态码算法,对应生成多套动态码信息。并且,还可以给每套动态码信息设定一个生命周期,在动态码信息的生命周期结束之后,便重新生成一套新的动态码信息进行替换。
需要强调的是,服务器可以在离线状态下,使用动态码算法,预先生成动态码信息,从而避免占用正常工作时的计算资源。当然,服务器也还可以调用其它服务(例如算法执行器),来使用动态码算法,预先生成动态码信息,减少自身计算压力。此外,服务器还可以调用缓存服务,对动态码算法和动态码信息进行保存。
S102:客户端向服务器发送访问请求。
S103:服务器调用大数据服务,对客户端的历史浏览信息进行数据挖掘,得到客户端的可疑等级。
其中,可疑等级用于指示客户端与网络爬虫的相似度,所谓的相似度,即客户端为网络爬虫的可能性,相似度越高,则客户端为网络爬虫的可能性越高。
需要说明的是,所谓的大数据服务,为本领域技术人员所熟悉的公知常识,包括但不限于为数据服务、监控服务、以及订单服务。
S104:服务器将与可疑等级对应的算法难度,标识为目标算法难度。
其中,算法难度用于指示动态码算法的复杂度。
需要说明的是,可疑等级越高,算法难度越高,动态码算法的复杂度越高,越消耗算力。
S105:服务器将与可疑等级对应的计算次数,标识为目标计算次数。
其中,计算次数用于指示动态码算法的迭代计算次数。
需要说明的是,可疑等级越高,计算次数越多,动态码算法的迭代计算次数越多,则越消耗算力。
S106:服务器从各个动态码算法中,筛选出与目标算法难度对应的动态码算法,作为目标动态码算法。
S107:服务器从目标动态码信息所包含的各个动态码中,选取一个动态码作为第一动态码。
其中,目标动态码信息为:使用目标动态码算法,预先生成的动态码信息。
S108:服务器从目标动态码信息所包含的各个动态码中,选取满足预设条件的动态码,作为第二动态码。
其中,预设条件为:将第一动态码作为目标动态码算法的初始输入,通过目标动态码算法进行n次迭代计算后,所得到的动态码。在本申请实施例中,n的取值为目标计算次数。
S109:服务器对第二动态码进行加密,得到第二动态码密文,并保存第二动态码。
其中,对第二动态码进行加密过程中,所采用的加密算法包括但不限于为MD5算法。
S110:服务器将目标动态码算法、第一动态码、以及第二动态码密文,发送给客户端。
S111:客户端将第一动态码作为目标动态码算法的初始输入,重复通过目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与第二动态码密文相同。
其中,动态码的密文基于对迭代计算得到的动态码进行加密得到。
需要说明的是,正常用户所使用的客户端,其对迭代计算得到的动态码进行加密的加密方式,与服务器对第二动态码进行加密的加密方式相同。由网络爬虫所伪装的客户端,其对迭代计算得到的动态码进行加密的加密方式,可能会与服务器对第二动态码进行加密的加密方式不同。
S112:客户端将目标动态码发送给服务器。
其中,目标动态码为:密文与第二动态码密文相同的动态码。
S113:服务器判断第二动态码与目标动态码是否相同。
若第二动态码与目标动态码相同,则执行S114,否则执行S115。
S114:服务器向客户端发送访问请求所指示的资源信息。
其中,为了防止网络爬虫伪装为客户端获取资源,故对目标动态码进行验证,在第二动态码与目标动态码相同的情况下,确定目标动态码通过验证,允许客户端获取资源信息。
S115:服务器向客户端发送无权访问提示。
其中,在第二动态码与目标动态码不相同的情况下,确定目标动态码未通过验证,客户端可能为网络爬虫所伪装,故向客户端发送无权访问提示,实现网站资源的有效保护。
综上所述,服务器基于客户端的可疑等级,确定目标动态码算法的算法难度、以及迭代计算的次数,并将目标动态码算法、第一动态码和第二动态码密文发送给客户端。客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本实施例所述方案,能够提高网络爬虫拦截的有效性。
如图2所示,为本申请实施例提供的一种基于动态码的反爬虫方法,应用于服务器,包括如下步骤:
S201:在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与客户端的可疑等级对应的动态码算法,作为目标动态码算法。
S202:从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码。
其中,目标动态码信息为:使用目标动态码算法,预先生成的动态码信息。
S203:从剩余的动态码中,选取满足预设条件的动态码,作为第二动态码。
其中,预设条件为:将第一动态码作为目标动态码算法的初始输入,通过目标动态码算法进行n次迭代计算后,所得到的动态码,n的取值基于可疑等级所确定。
S204:对第二动态码进行加密,得到第二动态码密文。
S205:将目标动态码算法、第一动态码、以及第二动态码密文,发送给客户端,触发客户端计算得到目标动态码。
S206:在接收到客户端发送的目标动态码的情况下,将第二动态码与目标动态码进行比较。
S207:在第二动态码与目标动态码不相同的情况下,向客户端发送无权访问提示。
综上所述,基于客户端的可疑等级,确定目标动态码算法的算法难度、以及迭代计算的次数,并将目标动态码算法、第一动态码和第二动态码密文发送给客户端。客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本实施例所述方案,能够提高网络爬虫拦截的有效性。
如图3所示,为本申请实施例提供的另一种基于动态码的反爬虫方法,应用于客户端,包括如下步骤:
S301:向服务器发送访问请求。
S302:接收服务器基于访问请求发送的信息。
其中,信息包括目标动态码算法、第一动态码、以及第二动态码密文。
S303:将第一动态码作为目标动态码算法的初始输入,重复通过目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与第二动态码密文相同。
其中,动态码的密文基于对迭代计算得到的动态码进行加密得到。
S304:向服务器发送目标动态码。
其中,目标动态码为:密文与第二动态码密文相同的动态码。
综上所述,客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本实施例所述方案,能够提高网络爬虫拦截的有效性。
与上述本申请实施例提供的基于动态码的反爬虫方法相对应,本申请还对应提供了一种服务器和客户端。
如图4所示,为本申请实施例提供的一种服务器的架构示意图,包括:
筛选单元401,用于在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与客户端的可疑等级对应的动态码算法,作为目标动态码算法。
其中,筛选单元401具体用于:调用大数据服务,对客户端的历史浏览信息进行数据挖掘,得到客户端的可疑等级;可疑等级用于指示客户端与网络爬虫的相似度;将与可疑等级对应的算法难度,标识为目标算法难度;算法难度用于指示动态码算法的复杂度;从预存的各个动态码算法中,筛选出与目标算法难度对应的动态码算法,作为目标动态码算法。
第一选取单元402,用于从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;目标动态码信息为:使用目标动态码算法,预先生成的动态码信息。
第二选取单元403,用于从剩余的动态码中,选取满足预设条件的动态码,作为第二动态码;预设条件为:将第一动态码作为目标动态码算法的初始输入,通过目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于可疑等级所确定。
其中,第二选取单元403用于基于可疑等级确定n的取值的具体过程包括:将与可疑等级对应的计算次数,标识为目标计算次数;计算次数用于指示动态码算法的迭代计算次数;将目标计算次数作为n的取值。
加密单元404,用于对第二动态码进行加密,得到第二动态码密文。
第一发送单元405,用于将目标动态码算法、第一动态码、以及第二动态码密文,发送给客户端,触发客户端计算得到目标动态码。
比较单元406,用于在接收到客户端发送的目标动态码的情况下,将第二动态码与目标动态码进行比较。
第二发送单元407,用于在第二动态码与目标动态码不相同的情况下,向客户端发送无权访问提示。
第三发送单元408,用于在第二动态码与目标动态码相同的情况下,向客户端发送访问请求所指示的资源信息。
综上所述,基于客户端的可疑等级,确定目标动态码算法的算法难度、以及迭代计算的次数,并将目标动态码算法、第一动态码和第二动态码密文发送给客户端。客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本实施例所述方案,能够提高网络爬虫拦截的有效性。
如图5所示,为本申请实施例提供的一种客户端的架构示意图,包括:
请求单元501,用于向服务器发送访问请求。
接收单元502,用于接收服务器基于访问请求发送的信息;信息包括目标动态码算法、第一动态码、以及第二动态码密文。
计算单元503,用于将第一动态码作为目标动态码算法的初始输入,重复通过目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与第二动态码密文相同;动态码的密文基于对迭代计算得到的动态码进行加密得到。
发送单元504,用于向服务器发送目标动态码;目标动态码为:密文与第二动态码密文相同的动态码。
综上所述,客户端需通过目标动态算法进行n次迭代计算,得到目标动态码,且目标动态码经由服务器验证通过后,才能获取所需的资源信息,从而为网站资源提供可靠保护。若网络爬虫伪装成客户端获取资源信息,则网络爬虫需要消耗大量算力进行目标动态算法的迭代计算,从而有效削弱网络爬虫的算力,实现对网络爬虫的严惩,并能减少网络爬虫对服务器的访问量,减轻服务器的压力,保证服务器的高效运行,使得网站能够稳定运行。可见,利用本实施例所述方案,能够提高网络爬虫拦截的有效性。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于动态码的反爬虫方法,其特征在于,应用于服务器,包括:
在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
对所述第二动态码进行加密,得到第二动态码密文;
将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端,触发所述客户端计算得到目标动态码;
在接收到所述客户端发送的所述目标动态码的情况下,将所述第二动态码与所述目标动态码进行比较;
在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
2.根据权利要求1所述的方法,其特征在于,所述从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法,包括:
调用大数据服务,对所述客户端的历史浏览信息进行数据挖掘,得到所述客户端的可疑等级;所述可疑等级用于指示所述客户端与网络爬虫的相似度;
将与所述可疑等级对应的算法难度,标识为目标算法难度;所述算法难度用于指示动态码算法的复杂度;
从预存的各个所述动态码算法中,筛选出与所述目标算法难度对应的动态码算法,作为目标动态码算法。
3.根据权利要求1所述的方法,其特征在于,所述n的取值基于所述可疑等级所确定,包括:
将与所述可疑等级对应的计算次数,标识为目标计算次数;所述计算次数用于指示动态码算法的迭代计算次数;
将所述目标计算次数作为n的取值。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述第二动态码与所述目标动态码相同的情况下,向所述客户端发送所述访问请求所指示的资源信息。
5.一种基于动态码的反爬虫方法,其特征在于,应用于客户端,包括:
向服务器发送访问请求;
接收所述服务器基于所述访问请求发送的信息;所述信息包括目标动态码算法、第一动态码、以及第二动态码密文;
将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码。
6.一种服务器,其特征在于,包括:
筛选单元,用于在接收到客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
第一选取单元,用于从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
第二选取单元,用于从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
加密单元,用于对所述第二动态码进行加密,得到第二动态码密文;
第一发送单元,用于将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端,触发所述客户端计算得到目标动态码;
比较单元,用于在接收到所述客户端发送的所述目标动态码的情况下,将所述第二动态码与所述目标动态码进行比较;
第二发送单元,用于在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
7.根据权利要求6所述的服务器,其特征在于,所述筛选单元具体用于:
调用大数据服务,对所述客户端的历史浏览信息进行数据挖掘,得到所述客户端的可疑等级;所述可疑等级用于指示所述客户端与网络爬虫的相似度;
将与所述可疑等级对应的算法难度,标识为目标算法难度;所述算法难度用于指示动态码算法的复杂度;
从预存的各个所述动态码算法中,筛选出与所述目标算法难度对应的动态码算法,作为目标动态码算法。
8.根据权利要求6所述的服务器,其特征在于,还包括:
第三发送单元,用于在所述第二动态码与所述目标动态码相同的情况下,向所述客户端发送所述访问请求所指示的资源信息。
9.一种客户端,其特征在于,包括:
请求单元,用于向服务器发送访问请求;
接收单元,用于接收所述服务器基于所述访问请求发送的信息;所述信息包括目标动态码算法、第一动态码、以及第二动态码密文;
计算单元,用于将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
发送单元,用于向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码。
10.一种基于动态码的反爬虫系统,其特征在于,包括:
服务器和客户端;
所述服务器,用于:
在接收到所述客户端发送的访问请求的情况下,从预存的各个动态码算法中,筛选出与所述客户端的可疑等级对应的动态码算法,作为目标动态码算法;
从目标动态码信息所包含的各个动态码中,选取一个动态码,作为第一动态码;所述目标动态码信息为:使用所述目标动态码算法,预先生成的动态码信息;
从剩余的所述动态码中,选取满足预设条件的动态码,作为第二动态码;所述预设条件为:将所述第一动态码作为所述目标动态码算法的初始输入,通过所述目标动态码算法进行n次迭代计算后,所得到的动态码;n的取值基于所述可疑等级所确定;
对所述第二动态码进行加密,得到第二动态码密文;
将所述目标动态码算法、所述第一动态码、以及所述第二动态码密文,发送给所述客户端;
所述客户端,用于:
将所述第一动态码作为所述目标动态码算法的初始输入,重复通过所述目标动态码算法进行迭代计算,直至迭代计算得到的动态码的密文与所述第二动态码密文相同;所述动态码的密文基于对迭代计算得到的动态码进行加密得到;
向所述服务器发送目标动态码;所述目标动态码为:所述密文与所述第二动态码密文相同的动态码;
所述服务器,还用于:
将所述第二动态码与所述目标动态码进行比较;
在所述第二动态码与所述目标动态码不相同的情况下,向所述客户端发送无权访问提示。
CN202111619899.1A 2021-12-27 2021-12-27 一种基于动态码的反爬虫方法、系统、客户端和服务器 Active CN114338146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111619899.1A CN114338146B (zh) 2021-12-27 2021-12-27 一种基于动态码的反爬虫方法、系统、客户端和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111619899.1A CN114338146B (zh) 2021-12-27 2021-12-27 一种基于动态码的反爬虫方法、系统、客户端和服务器

Publications (2)

Publication Number Publication Date
CN114338146A CN114338146A (zh) 2022-04-12
CN114338146B true CN114338146B (zh) 2023-08-15

Family

ID=81014612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111619899.1A Active CN114338146B (zh) 2021-12-27 2021-12-27 一种基于动态码的反爬虫方法、系统、客户端和服务器

Country Status (1)

Country Link
CN (1) CN114338146B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637888B (zh) * 2022-05-18 2022-08-02 深圳市华曦达科技股份有限公司 一种视频推送方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098232A (zh) * 2007-07-12 2008-01-02 兰州大学 一种动态口令与多生物特征结合的身份认证方法
CN105812366A (zh) * 2016-03-14 2016-07-27 携程计算机技术(上海)有限公司 服务器、反爬虫系统和反爬虫验证方法
CN107733633A (zh) * 2017-09-22 2018-02-23 成都知道创宇信息技术有限公司 一种基于算力的防爬虫方法
CN108848057A (zh) * 2018-05-04 2018-11-20 浙江大华技术股份有限公司 一种远程安全访问的方法及装置
CN109862018A (zh) * 2019-02-21 2019-06-07 中国工商银行股份有限公司 基于用户访问行为的反爬虫方法及系统
CN110933103A (zh) * 2019-12-11 2020-03-27 江苏满运软件科技有限公司 反爬虫方法、装置、设备和介质
CN111597424A (zh) * 2020-07-21 2020-08-28 平安国际智慧城市科技股份有限公司 爬虫识别方法、装置、计算机设备和存储介质
CN112182603A (zh) * 2020-09-22 2021-01-05 建信金融科技有限责任公司 反爬虫方法和装置
CN112433935A (zh) * 2020-11-17 2021-03-02 平安消费金融有限公司 测试方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098232A (zh) * 2007-07-12 2008-01-02 兰州大学 一种动态口令与多生物特征结合的身份认证方法
CN105812366A (zh) * 2016-03-14 2016-07-27 携程计算机技术(上海)有限公司 服务器、反爬虫系统和反爬虫验证方法
CN107733633A (zh) * 2017-09-22 2018-02-23 成都知道创宇信息技术有限公司 一种基于算力的防爬虫方法
CN108848057A (zh) * 2018-05-04 2018-11-20 浙江大华技术股份有限公司 一种远程安全访问的方法及装置
CN109862018A (zh) * 2019-02-21 2019-06-07 中国工商银行股份有限公司 基于用户访问行为的反爬虫方法及系统
CN110933103A (zh) * 2019-12-11 2020-03-27 江苏满运软件科技有限公司 反爬虫方法、装置、设备和介质
CN111597424A (zh) * 2020-07-21 2020-08-28 平安国际智慧城市科技股份有限公司 爬虫识别方法、装置、计算机设备和存储介质
CN112182603A (zh) * 2020-09-22 2021-01-05 建信金融科技有限责任公司 反爬虫方法和装置
CN112433935A (zh) * 2020-11-17 2021-03-02 平安消费金融有限公司 测试方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
恶意爬虫主动防御技术研究与实现;丁文豪;中国优秀硕士学位论文全文数据库信息科技辑;全文 *

Also Published As

Publication number Publication date
CN114338146A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US10268841B1 (en) Data anonymity and separation for user computation
EP3368973B1 (en) Multi-layer computer security countermeasures
KR102151862B1 (ko) 서비스 처리 방법 및 장치
EP2673708B1 (en) DISTINGUISH VALID USERS FROM BOTS, OCRs AND THIRD PARTY SOLVERS WHEN PRESENTING CAPTCHA
US10997289B2 (en) Identifying malicious executing code of an enclave
US11756404B2 (en) Adaptive severity functions for alerts
US10915897B2 (en) Token management for enhanced omni-channel payments experience and analytics
CN104520873A (zh) 用于保护和恢复虚拟机的系统和方法
US8204929B2 (en) Hiding sensitive information
CN104704472A (zh) 侧信道攻击的检测和缓解
CN112287379B (zh) 业务数据使用方法、装置、设备、存储介质和程序产品
CN107666470B (zh) 一种验证信息的处理方法及装置
CN111859368A (zh) 弱密码生成方法、密码检测方法、装置及电子设备
CN105577701A (zh) 网络爬虫的识别方法及系统
CN114338146B (zh) 一种基于动态码的反爬虫方法、系统、客户端和服务器
Mujtaba et al. Energy efficient data encryption techniques in smartphones
CN111010379B (zh) 一种基于区块链网络的数据登录方法和装置
CN104253687A (zh) 降低验证效率方法、生成验证码方法、相关系统及服务器
CN109818906A (zh) 一种设备指纹信息处理方法、装置及服务器
CN116910816A (zh) 一种提高隐私保护下的多方资产协同管理方法及装置
US20050010624A1 (en) Method and system for making secure a pseudo-random generator
Lalropuia et al. Availability and reliability analysis of cloud computing under economic denial of sustainability (EDoS) attack: a semi-Markov approach
CN115941279A (zh) 数据中用户标识的加解密方法、系统及设备
Gupta et al. A secure and lightweight approach for critical data security in cloud
CN112580114A (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