服务器、反爬虫系统和反爬虫验证方法与流程

文档序号:18752306发布日期:2019-09-24 21:19阅读:474来源:国知局
服务器、反爬虫系统和反爬虫验证方法与流程

本发明涉及一种反爬虫技术,特别涉及一种动态选择加解密函数的服务器、包括该服务器的反爬虫系统和利用该反爬虫系统实现的反爬虫验证方法。



背景技术:

随着互联网的发展,目前互联网上的爬虫量日益增加,爬虫者会伪造用户行为,不断地访问服务器获取信息,这样会大大拖慢服务器速度,并且会造成私有信息资源被批量获取的风险。怎样通过采取先进的反爬虫手段来保护公司私有信息资源已经成为一个急需解决的问题。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的爬虫者不断地访问服务器获取信息导致服务器速度慢,且造成信息资源被批量获取的缺陷,提供一种服务器、反爬虫系统和反爬虫验证方法。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供一种服务器,其特点在于,其包括一存储器、一生成模块、一抽取模块、一加密模块和一验证模块,该存储器中存储有多个函数,每一函数包括加密函数和对应的解密函数;

该生成模块用于在收到一客户端发来的获取数据的请求信息后随机生成一随机密码;

该抽取模块用于从该些函数中随机抽取至少一个函数;

该加密模块用于利用抽取出的函数中的加密函数对该随机密码进行加密处理,并将加密处理获得的加密密码和抽取出的函数中的解密函数发送至该客户端;

该验证模块用于在接收到该客户端发来的针对该加密密码的解密结果时,对该解密结果进行验证,在该解密结果与该随机密码相同时发送该请求信息所需获取的数据至该客户端,在该解密结果与该随机密码不同时不发送该请求信息所需获取的数据至该客户端。

在本方案中,由于抽取的加解密函数的个数和顺序都是随机的,使得每次客户端的解密过程都不一样,从而大大提高爬虫破解的难度,对爬虫进行更有效的拦截。

较佳地,该验证模块用于在该解密结果与该随机密码不同时发送一假数据至该客户端,该假数据为除该请求信息所需获取的数据之外的数据。

较佳地,该验证模块用于在该解密结果与该随机密码不同时不发送任何数据至该客户端。

较佳地,该加密模块用于利用抽取出的加密函数依次对该随机密码进行加密处理,并将该加密密码、加密函数加密顺序和抽取出的解密函数发送至该客户端。

较佳地,该存储器为可添加的或可变更的。

本发明还提供一种反爬虫系统,其特点在于,其包括上述的服务器和客户端。

本发明还提供一种反爬虫验证方法,其特点在于,其利用上述的反爬虫系统实现,其包括以下步骤:

S1、该客户端发送该获取数据的请求信息至该服务器;

S2、该服务器收到该请求信息后随机生成该随机密码;

S3、该服务器从该些函数中随机抽取至少一个函数;

S4、该服务器利用抽取出的函数中的加密函数对该随机密码进行加密处理,并将加密处理获得的加密密码和抽取出的函数中的解密函数发送至该客户端;

S5、该客户端对该加密密码进行解密处理,并将解密处理获得的解密结果发送至该服务器;

S6、该服务器对该解密结果进行验证,在该解密结果与该随机密码相同时发送该请求信息所需获取的数据至该客户端,否则不发送该请求信息所需获取的数据至该客户端。

较佳地,在步骤S6中,该服务器在该解密结果与该随机密码不同时发送一假数据至该客户端,该假数据为除该请求信息所需获取的数据之外的数据。

较佳地,在步骤S6中,该服务器在该解密结果与该随机密码不同时不发送任何数据至该客户端。

较佳地,在步骤S4中,利用抽取出的加密函数依次对该随机密码进行加密处理,并将该加密密码、加密函数加密顺序和抽取出的解密函数发送至该客户端。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明由于抽取的加解密函数的个数和顺序都是随机的,使得每次客户端的解密过程都不一样,从而大大提高爬虫破解的难度,对爬虫进行更有效的拦截。而且,可在不改变代码结构的情况下很容易添加新的加解密函数,进一步增加爬虫的破解难度。

附图说明

图1为本发明较佳实施例的服务器的结构框图。

图2为本发明较佳实施例的反爬虫验证方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

本实施例提供一种反爬虫系统,其包括一服务器和一客户端。

其中,如图1所示,该服务器包括一存储器1、一生成模块2、一抽取模块3、一加密模块4和一验证模块5,该存储器1为可添加的或可变更的,该存储器1中存储有多个函数,每一函数包括加密函数和对应的解密函数。

下面介绍各功能模块所具备的功能:

该生成模块2用于在收到一客户端发来的获取数据的请求信息后随机生成一随机密码;

该抽取模块3用于从该些函数中随机抽取至少一个函数;

该加密模块4用于利用抽取出的函数中的加密函数依次对该随机密码进行加密处理,并将加密处理获得的加密密码、加密函数加密顺序和抽取出的函数中的解密函数发送至该客户端;

该验证模块5用于在接收到该客户端发来的针对该加密密码的解密结果时,对该解密结果进行验证,在该解密结果与该随机密码相同时发送该请求信息所需获取的数据至该客户端,在该解密结果与该随机密码不同时发送一假数据至该客户端或,不发送任何数据至该客户端,该假数据为除该请求信息所需获取的数据之外的数据。

如图2所示,本实施例提供一种反爬虫验证方法,其利用上述的反爬虫系统实现,其包括以下步骤:

步骤101、该客户端发送该获取数据的请求信息至该服务器;

步骤102、该服务器收到该请求信息后随机生成该随机密码;

步骤103、该服务器从该些函数中随机抽取至少一个函数;

步骤104、该服务器利用抽取出的函数中的加密函数依次对该随机密码进行加密处理,并将加密处理获得的加密密码和抽取出的函数中的解密函数发送至该客户端;

步骤105、该客户端对该加密密码进行解密处理,并将解密处理获得的解密结果发送至该服务器;

步骤106、该服务器对该解密结果进行验证,在该解密结果与该随机密码相同时进入步骤107,否则进入步骤108;

步骤107、发送该请求信息所需获取的数据至该客户端,结束流程;

步骤108、不发送该请求信息所需获取的数据至该客户端,结束流程。

例如:该服务器在该解密结果与该随机密码不同时发送一假数据至该客户端,该假数据为除该请求信息所需获取的数据之外的数据;或者,该服务器在该解密结果与该随机密码不同时不发送任何数据至该客户端。

为了使得本领域的技术人员更好地理解本发明的技术方案,下面举一具体的例子来进一步说明:

设定服务器中存储有5个函数,即5对加解密函数(+A加密函数与-A解密函数、+B加密函数与-B解密函数、+C加密函数与-C解密函数、+D加密函数与-D解密函数以及+E加密函数与-E解密函数)。

服务器收到客户端发来的获取数据的请求信息(例如/check请求)后随机生成一个随机密码key,然后从5对加解密函数中依次抽取+A加密函数与-A解密函数、+C加密函数与-C解密函数、+D加密函数与-D解密函数,利用其中的+A加密函数、+C加密函数和+D加密函数依次对该随机密码key进行加密处理。

具体地,先用+A加密函数对该随机密码key进行加密,得到一个结果k1(k1=+A(key)),接着用+C加密函数对经函数A的加密结果k1再次加密得到k2(k2=+C(k1)),最后用+D加密函数对经函数C的加密结果k2进行加密,得到最终加密后的encoded_key(encoded_key=+D(k2)),即

key→(+A)→(+C)→(+D)→encoded_key。

其后,将加密处理获得的加密密码encoded_key和抽取出的解密函数(即-A解密函数、-C解密函数和-D解密函数)发送至该客户端,该客户端对该加密密码encoded_key进行解密处理,并将解密处理获得的解密结果发送至该服务器,该服务器对该解密结果进行验证,在该解密结果与该随机密码key相同时表明解密成功,解密者为正常的用户,此时服务器发送该请求信息所需获取的数据至该客户端,在该解密结果与该随机密码key不同时表明解密失败,解密者不是正常的用户,而是爬虫者,这时服务器发送一假数据或者不发送任何数据给该客户端。

在上述验证过程中,函数的个数和顺序是随机抽取的,这可大大增加爬虫破解的难度,在不占用大量存储空间和CPU(中央处理器)资源的情况下提高爬虫的拦截率。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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