限制批量请求服务的方法和装置的制造方法

文档序号:8922849阅读:214来源:国知局
限制批量请求服务的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别地涉及一种限制批量请求服务的方法和装置。
【背景技术】
[0002]在Internet给我们带来强大的业务支撑能力的同时,作为服务提供者也同时面临着严峻的来自公网的恶意攻击。这其中有一大类攻击属于利用批量程序快速、重复执行来获取服务,如:批量注册、批量发帖、刷排名、秒杀器、利用爬虫复制网站等等,通过这些批量操作以达到冒充一批用户操作的目的;以批量注册程序为例,如果服务提供者不加限制,一个批量注册程序可以在一台个人计算机上通过并行执行的方式I小时注册上万仿冒用户,这些仿冒用户后续可以进一步用来获得非法收益。
[0003]这些批量操作请求大量的消耗了服务提供者的计算资源,但是带来的却是无效流量、降低了服务性能、干扰了正常用户的访问。为了保证服务的正常运行,服务提供者需要考虑如何限制这类批量操作(常称作“防刷”),使得服务资源能服务于正常用户。
[0004]目前常用的限制批量请求服务(防刷)的手段包括如下方法:
[0005]1、网络层限制:在网络层对请求频率做出策略控制。例如:
[0006](I)、按照IP地址与端口号访问情况做具体限制,如单位时间内允许的访问次数;
[0007](2)、根据HTTP头做规则策略,如限制URL的单位时间访问的IP数量,判断Cookie等信息;
[0008](3)、改变浏览器端设置,利用Cookie变化、Javascript等技术,阻止重复请求,例如:限制http_referer防盗链、限制http_user_agent防爬虫、限制request_method方法、限制http_cookie禁止没有携带正确cookie的访问者。
[0009]2、应用层限制:通过程序主动控制访问行为。例如:
[0010](I)、限制单位时间内访问次数;
[0011](2)、设置访问时间间隔设置;
[0012](3)、设置封锁时间;
[0013](4)、设置黑白名单;
[0014]3、通过反向图灵测试(CAPTCHA、验证码等)屏蔽来自自动程序的访问,一般是设置一个开放问题,对人具有较好的辨识度而机器非常难解决;通过强制要求真实的人员参与回答问题限制程序的批量请求行为,目前流行的验证码测试包括图片辨识、回答随机问题、语音验证等。
[0015]4、手机短信验证,服务向用户手机发送一个验证码并要求用户在完成请求前输入。
[0016]以上方法存在很多不足之处,下面作一简要分析。
[0017]在网络层对访问频率做限制很容易被绕过,同时误封率很高。例如,目前存在大量的NAT架构,服务端采集的访问者IP地址是相同的,基于访问频率限制不可行;利用代理技术和http_C00kie、IP地址伪造可以容易的绕过限制;另外通过程序主动控制访问行为需要设置控制规则,而规则的有效性较难把控,设置合适的黑白名单很困难,不恰当的控制规则可能使得服务的用性降低,例如设置单位时间的访问次数,某种程度上降低了服务的可用性。
[0018]通过验证码方式检查是当前最常见、最成熟的一种解决方案,得到了广泛的应用,但是验证码的有效性取决于机器能否有效辨识及回答问题,问题难度设置太高会给用户带来困难,而随着机器智能的进化难度低的问题已经不能有效阻止机器自动识别。OCR技术的进步使得基于字符扭曲变形等一类基于图像识别测试有效性降低。机器智能进步使得机器自动答题测试变得不再可靠。另外验证码降低了用户体验,对如色盲、老年群体造成了很大的困扰。
[0019]基于手机短信认证具有极高的可靠性,但同时限制也非常大,需要用户绑定手机、有额外的短信发送成本、用户操作繁琐。

【发明内容】

[0020]有鉴于此,本发明提供一种限制批量请求服务的方法和装置,有助于对批量地请求服务的行为做出限制,并有助于克服现有技术中的一些不足之处。
[0021]为实现上述目的,根据本发明的一个方面,提供了一种限制批量请求服务的方法。
[0022]本发明的限制批量请求服务的方法包括:服务端接收终端发送的服务请求信息;所述服务端向所述终端发送一个计算题目,该计算题目对于所述终端的计算资源需求量大于其对所述服务端的计算资源需求量;所述服务端接收所述终端对所述题目的计算结果,然后对该结果进行验证,若正确,则向所述终端提供服务,否则拒绝向所述终端提供服务。
[0023]可选地,所述计算题目包括用于消耗所述终端的内存的计算题目。
[0024]可选地,所述服务端向所述终端发送一个计算题目之前,还包括:所述服务端向所述终端发送服务端设备的内存中的多个数据区片的数据;所述计算题目包括:要求所述终端提供所述多个数据区片中的一个指定数据区片中的数据。
[0025]可选地,所述计算题目包括用于消耗所述终端的网络资源的计算题目。
[0026]可选地,所述服务端向所述终端发送一个计算题目之前,还包括:保存多个网络地址,其中每个网络地址上有一个文件;并且保存所述多个网络地址上的文件的数字摘要值;所述计算题目包括:要求所述终端提供所述多个网络地址中的指定网络地址上的文件的数字摘要值。
[0027]根据本发明的另一方面,提供了一种限制批量请求服务的装置。
[0028]本发明的限制批量请求服务的装置包括:接收模块,用于接收终端发送的服务请求信息;出题模块,用于向所述终端发送一个计算题目,该计算题目对于所述终端的计算资源需求量大于其对所述服务端的计算资源需求量;验证响应模块,用于接收所述终端对所述题目的计算结果,然后对该结果进行验证,若正确,则向所述终端返回表示验证通过的信息,否则向所述终端返回表示验证未通过的信息。
[0029]可选地,所述计算题目包括用于消耗所述终端的内存的计算题目。
[0030]可选地,还包括内存数据发送模块,用于向所述终端发送服务端设备的内存中的多个数据区片的数据;所述计算题目包括:要求所述终端提供所述多个数据区片中的一个指定数据区片中的数据。
[0031]可选地,所述计算题目包括用于消耗所述终端的网络资源的计算题目。
[0032]可选地,还包括网络地址保存模块,用于保存多个网络地址,其中每个网络地址上有一个文件;并且保存所述多个网络地址上的文件的数字摘要值;所述计算题目包括:要求所述终端提供所述多个网络地址中的指定网络地址上的文件的数字摘要值。
[0033]根据本发明的技术方案,提供服务的服务端对请求服务的终端出具计算题目,该计算题目对于服务端和终端的计算资源需求是不对称的。这种方式使终端必须解题才可以进一步获得服务,这种限制无法绕过;并且对于仅请求一次或几次的合法终端来说并不消耗太多计算资源,从而不会降低服务的可用性;而对于使用程序恶意批量请求的终端来说则会有效消耗其计算资源使其难以继续进行请求;另外本技术方案显然也避免了现有的以验证码检查终端、手机短信认证终端等方案的局限性。
【附图说明】
[0034]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0035]图1是根据本发明实施例的限制批量请求服务的方法的主要步骤的示意图;
[0036]图2是根据本发明实施例的限制批量请求服务的装置的主要模块的示意图。
【具体实施方式】
[0037]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0038]在本发明实施例中,通过提高批量请求发起者程序的单次请求资源消耗,使得批量请求发起者在单位时间内能执行的请求次数得到自然的限制。本实施例的限制批量请求服务方法中,由服务提供者对服务请求者给出题目,而服务请求者程序必须消耗计算资源(CPU、内存、网络资源等)解题。题目的难度最好是设置在一个合理范围,使得客户端资源消耗对于离散的单个正常用户的计算规模控制在一个可接受范围,而对于并行批量请求尤其是并行批量请求因为资源要求倍增变得很难进行。设置的题目对于请求者(进行解题的一方)和服务端(进行验算的一方)的资源需要是非对称的,验算的资源消耗很小以不降低服务端的性能。上述的不对称问题可以基于非对称算法(如大数分解)或信息的不对称性(例如要求服务请求者下载并计算一个文件摘要值,该文件摘要对于服务提供者已知)设计。
[0039]以批量注册用户举例来说,一个恶意注册程序可以在一台主流配置的个人计算机上非常轻松的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1