CN103986690B - 一种处理客户端请求的方法和装置 - Google Patents

一种处理客户端请求的方法和装置 Download PDF

Info

Publication number
CN103986690B
CN103986690B CN201410131995.5A CN201410131995A CN103986690B CN 103986690 B CN103986690 B CN 103986690B CN 201410131995 A CN201410131995 A CN 201410131995A CN 103986690 B CN103986690 B CN 103986690B
Authority
CN
China
Prior art keywords
client
sent
calculating task
response code
task
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
CN201410131995.5A
Other languages
English (en)
Other versions
CN103986690A (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.)
Beijing Jingdong three hundred and sixty degree e-commerce Co., Ltd.
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201410131995.5A priority Critical patent/CN103986690B/zh
Publication of CN103986690A publication Critical patent/CN103986690A/zh
Application granted granted Critical
Publication of CN103986690B publication Critical patent/CN103986690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供一种处理客户端请求的方法和装置,能够降低DDoS攻击下的WEB服务器的负荷。本发明的处理客户端请求的方法包括:WEB服务器的代理服务器截取客户端发送的HTTP访问请求;所述代理服务器从预设的算法库中随机选择一项计算任务,将包含该计算任务的响应代码发送给所述客户端;所述代理服务器截取所述客户端发送的包含执行该计算任务的结果的跳转请求,然后判断该结果是否正确,若正确则将该跳转请求发送给所述WEB服务器,否则拒绝所述跳转请求。

Description

一种处理客户端请求的方法和装置
技术领域
本发明涉及计算机网络安全技术领域,特别地涉及一种处理客户端请求的方法和装置。
背景技术
当今互联网业务中,Web服务占据了相当大的比例,尤其是智能终端设备比如手机等的大面积普及,使得通过Web提供和获取信息的公司和用户呈爆炸性增长,Web服务的安全问题也日益成为人们的一大关注点。超文本传输协议(Hyper Text Transfer Protocol,HTTP)作为Web应用的核心协议,经常被黑客利用来实施分布式拒绝服务攻击(DistributedDenial of Service,DDoS)。在实施DDoS时,黑客发动大量的HTTP请求,使服务器的主要资源在短时间内被用来处理这些HTTP请求从而被几乎耗尽,无法提供其他服务。由于这些HTTP请求非常接近于用户行为,让一般防火墙等防御工具无法区分其为黑客行为还是用户正常访问,所以很难检测和防御。
黑客发动在实施DDoS攻击前,先通过特殊手段按分级治理(黑客主机控制主僵尸,主僵尸控制从僵尸,从僵尸发动攻击)的方式来控制大批散落于互联网各处的可运行程序的计算机或智能设备,这些可运行程序的设备被统称为“肉鸡”,通过操纵数量众多的“肉鸡”,黑客能够在短时间发起大量的HTTP请求,即实施DDoS攻击。
挑战/回复(Challenge/Response)是应对DDoS的一种技术,该种技术一般将真正提供Web服务的服务器隐藏起来,暴露在访问者面前的是守护真正提供Web服务的代理服务器,挑战(Challenge)就发生在访问者与中间的代理服务器之间。
访问者请求首先被代理服务器截住,然后代理服务器利用Cookies技术和HTTP访问跳转技术构造一个响应并返回给访问者,访问者收到这个响应后,通常会先执行一段代码(该步骤可选),然后利用Cookies携带结果并跳转到新的URL上,代理服务器再次截住这个请求,对携带的Cookies值进行校验,如果通过校验,则请求将发送到真正的Web服务器;否则将再次返回之前构造的响应,并记录重试次数,如此循环往复,如超过重试次数,就拒绝访问者。
上述过程中用到的HTTP访问跳转技术一般包括:
1.302/307等HTTP状态码;
2.HTML语言中关于跳转的META标签;
3.利用JavaScript的Document.location.href语法或基于JavaScript定制的模板。
Challenge/Response的基本过程如下:
步骤1.访问者请求真正提供Web服务的URL;
步骤2.代理服务器截住该请求,然后利用Cookies技术和HTTP访问跳转技术构造响应,并将之返回给访问者;
步骤3.访问者收到该响应后,先执行响应内容中的一段代码,然后利用跳转请求中的Cookies携带计算结果然后发送给代理服务器以进行跳转;
步骤4.代理服务器截住该跳转请求,对其中的Cookies值进行校验,如果校验成功,则将请求直接发送给真正的Web服务器;否则,将之前构造的响应再次返回给访问者,并记录重试次数;
步骤5.循环往复1-4步骤,直到超过重试次数,代理服务器拒绝访问者。
对于现有的挑战/回复技术,黑客能够通过人工或计算机辅助的方式另行分析出步骤2中的响应的源代码得出其中的计算结果,然后将计算结果直接附加在跳转请求中的Cookies内,对于每一台“肉鸡”来说,都通过该方式直接生成跳转请求从而避免由攻击程序进行计算,因此在进行DDoS攻击时仍能够向WEB服务器施加相当大的负荷。
发明内容
有鉴于此,本发明提供一种处理客户端请求的方法和装置,能够降低DDoS攻击下的WEB服务器的负荷。
为实现上述目的,根据本发明的一个方面,提供了一种处理客户端请求的方法。
本发明的处理客户端请求的方法包括:WEB服务器的代理服务器截取客户端发送的HTTP访问请求;所述代理服务器从预设的算法库中随机选择一项计算任务,将包含该计算任务的响应代码发送给所述客户端;所述代理服务器截取所述客户端执行该计算任务后发送的包含执行该计算任务的结果的跳转请求,然后判断该结果是否正确,若正确则将该跳转请求发送给所述WEB服务器,否则拒绝所述跳转请求。
可选地,在将所述响应代码发送给所述客户端之前,还包括:所述代理服务器对所述响应代码进行阅读混淆处理。
可选地,在将所述响应代码发送给所述客户端之前,还包括:所述代理服务器对所述响应代码进行加密。
可选地,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:算术四则运算任务集,要求对生成的随机数进行算术四则运算;数值计算任务集:要求对生成的随机数按指定方式进行数值计算;图像处理方法集:要求对指定的图像按指定方式进行处理。
根据本发明的另一方面,提供了一种处理客户端请求的装置。
本发明的处理客户端请求的装置包括:第一截取模块,用于截取客户端发送的HTTP访问请求;选择模块,用于从预设的算法库中随机选择一项计算任务;响应模块,用于将包含所述计算任务的响应代码发送给所述客户端;第二截取模块,用于截取所述客户端执行该计算任务后发送的包含执行所述计算任务的结果的跳转请求;判断处理模块,用于判断所述结果是否正确,若正确则将该跳转请求发送给WEB服务器,否则拒绝所述跳转请求。
可选地,所述响应模块还用于在将所述响应代码发送给所述客户端之前,对所述响应代码进行阅读混淆处理。
可选地,所述响应模块还用于在将所述响应代码发送给所述客户端之前,对所述响应代码进行加密。
可选地,还包括存储模块,用于保存算法库,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:算术四则运算任务集,要求对生成的随机数进行算术四则运算;数值计算任务集:要求对生成的随机数按指定方式进行数值计算;图像处理方法集:要求对指定的图像按指定方式进行处理。
根据本发明的技术方案,从算法库中选择挑战问题,使黑客无法在跳转请求中直接添加问题答案从而避免攻击程序进行问题的解答计算;在黑客改进攻击程序的情况下,其可控的“肉鸡”数量相应减少,从而降低了DDoS攻击下的WEB服务器的负荷。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的处理客户端请求的方法的主要步骤的示意图;
图2是根据本发明实施例的处理客户端请求的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的处理客户端请求的方法的主要步骤的示意图。如图1所示,本发明实施例的处理客户端请求的方法主要包括如下步骤:
步骤S11:WEB服务器的代理服务器截取客户端发送的HTTP访问请求。
步骤S12:代理服务器从预设的算法库中随机选择一项计算任务,将包含该计算任务的响应代码发送给客户端。本步骤即为发起“挑战”的步骤,其中的计算任务是从算法库中随机选择。客户端必须执行该计算任务,并将结果包含在接下来的跳转请求中。
步骤S13:代理服务器截取客户端发送的包含执行该计算任务的结果的跳转请求。
步骤S14:代理服务器判断跳转请求中包含的执行上述计算任务的结果是否正确,若正确则进入S15,否则进入步骤S16。
步骤S15:代理服务器将跳转请求发送给WEB服务器。
步骤S16:代理服务器拒绝上述跳转请求。
需要说明的是,正常用户对于WEB服务器的访问,同样需接受上述挑战,这些用户使用的终端设备例如个人计算机仍需对挑战问题进行计算。所以算法库中的挑战问题必须仔细设置,使主流配置的终端设备进行计算所需的时间不影响用户体验。
对于设置好的挑战问题,可以进一步得出一些与其耗时比较接近的等价问题。例如,一个挑战问题是计算自然数1至10000的和,其等价问题例如将其分成10个计算问题,分别是计算自然数1至1000的和,再计算1001至2000的和……直至计算到9001至10000的和。
可以对算法库中的计算任务进行分类以便维护。这样,算法库中包括一个或多个计算任务集,每个计算任务集包含多个计算任务。计算任务集例如:
算术四则运算任务集,要求对生成的随机数进行算术四则运算;
数值计算任务集:要求对生成的随机数按指定方式进行数值计算;
图像处理方法集:要求对指定的图像按指定方式进行处理。
每种计算任务集有一个唯一值标识,每个计算任务集中的每个等价方法也用一个唯一值标识,这样各个具体的计算任务就可以分别用一个二元组<计算任务集标识,计算任务标识>来区分。
如果黑客试图破解算法库中的所有问题,则可以再对上述的步骤S12中的响应代码做进一步处理。因为黑客在破解挑战问题时会人工分析该响应代码,所以对响应代码做进一步处理时主要是对其进行阅读混淆处理。阅读混淆处理是使代码变得不适宜人工阅读的一种处理方式,目前通常的做法是去除网页源代码中的帮助人类阅读的内容,例如注释、有层级的缩进量、空行等,使该源代码难以阅读,也可以在源代码中加入大量空白篇幅以干扰阅读。本实施例中,还可以在源代码中添加无效代码,无效代码是在执行源代码时不被执行的代码,但它们能够占用无效代码的篇幅,为分析者带来阅读和分析的困难。另外还可以对响应代码进行加密,使其难以由人工直接阅读,这里的加密例如自定义变量名,使变量名替换为不常见的形式从而干扰阅读和分析。
图2是根据本发明实施例的处理客户端请求的装置的主要模块的示意图。如图2所示,处理客户端请求的装置20主要包括:第一截取模块21、选择模块22、响应模块23、第二截取模块24、以及判断处理模块25。
第一截取模块21用于截取客户端发送的HTTP访问请求;选择模块22用于从预设的算法库中随机选择一项计算任务;响应模块23用于将包含该计算任务的响应代码发送给客户端;第二截取模块24用于截取客户端发送的包含执行该计算任务的结果的跳转请求;判断处理模块25用于判断该结果是否正确,若正确则将该跳转请求发送给WEB服务器,否则拒绝该跳转请求。
响应模块23还可用于在将响应代码发送给客户端之前,对上述响应代码进行阅读混淆处理。
响应模块23还可用于在将响应代码发送给客户端之前,对该响应代码进行加密。
处理客户端请求的装置20还可包括存储模块,用于保存算法库,该算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:算术四则运算任务集,要求对生成的随机数进行算术四则运算;数值计算任务集:要求对生成的随机数按指定方式进行数值计算;图像处理方法集:要求对指定的图像按指定方式进行处理。
采用本发明实施例的技术方案,有助于减轻在DDoS攻击下的WEB服务器的负荷,以下做一分析。
对于黑客应对挑战/回复技术的策略,首先分析出挑战问题的答案,然后将其附加在跳转请求中以避免由攻击程序进行计算。但是按上述步骤,挑战问题是从算法库中随机选择,因此不同的“肉鸡”中的攻击程序遇到的挑战问题不相同,同一“肉鸡”在不同的访问请求后遇到的挑战问题也不同,因此黑客即使得出一个挑战问题的答案,该答案也不适用于另一挑战问题。
如果黑客放弃对挑战问题的分析,直接由他开发的攻击程序进行计算,则DDoS攻击的效果将大打折扣。本实施例的上述步骤还基于如下原因:黑客通常会尽可能地使用简单的攻击程序,使计算资源配置较低的“肉鸡”也能够运行该攻击程序,这样就能有尽可能多的“肉鸡”能够参与到攻击中。但通过调整算法库中的挑战问题的难度,能够使黑客的攻击程序无法计算出该挑战问题从而攻击失败。黑客也许会提高其攻击程序的性能以能够应对挑战问题,但这一方面增加其开发成本,对于一些黑客则无力开发,另一方面攻击程序的复杂使得其可控制的“肉鸡”数量减少,从而降低了DDoS攻击下的WEB服务器的负荷。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (8)

1.一种处理客户端请求的方法,其特征在于,包括:
WEB服务器的代理服务器截取客户端发送的HTTP访问请求;
所述代理服务器从预设的算法库中随机选择一项计算任务,将包含该计算任务的响应代码发送给所述客户端;
所述代理服务器截取所述客户端执行该计算任务后发送的包含执行该计算任务的结果的跳转请求,然后判断该结果是否正确,若正确则将该跳转请求发送给所述WEB服务器,否则拒绝所述跳转请求。
2.根据权利要求1所述的方法,其特征在于,在将所述响应代码发送给所述客户端之前,还包括:所述代理服务器对所述响应代码进行阅读混淆处理。
3.根据权利要求1所述的方法,其特征在于,在将所述响应代码发送给所述客户端之前,还包括:所述代理服务器对所述响应代码进行加密。
4.根据权利要求1,2或3中任一项所述的方法,其特征在于,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:
算术四则运算任务集,要求对生成的随机数进行算术四则运算;
数值计算任务集:要求对生成的随机数按指定方式进行数值计算;
图像处理方法集:要求对指定的图像按指定方式进行处理。
5.一种处理客户端请求的装置,其特征在于,包括:
第一截取模块,用于截取客户端发送的HTTP访问请求;
选择模块,用于从预设的算法库中随机选择一项计算任务;
响应模块,用于将包含所述计算任务的响应代码发送给所述客户端;
第二截取模块,用于截取所述客户端执行该计算任务后发送的包含执行所述计算任务的结果的跳转请求;
判断处理模块,用于判断所述结果是否正确,若正确则将该跳转请求发送给WEB服务器,否则拒绝所述跳转请求。
6.根据权利要求5所述的装置,其特征在于,所述响应模块还用于在将所述响应代码发送给所述客户端之前,对所述响应代码进行阅读混淆处理。
7.根据权利要求5所述的装置,其特征在于,所述响应模块还用于在将所述响应代码发送给所述客户端之前,对所述响应代码进行加密。
8.根据权利要求5,6或7中任一项所述的装置,其特征在于,还包括存储模块,用于保存算法库,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:
算术四则运算任务集,要求对生成的随机数进行算术四则运算;
数值计算任务集:要求对生成的随机数按指定方式进行数值计算;
图像处理方法集:要求对指定的图像按指定方式进行处理。
CN201410131995.5A 2014-04-03 2014-04-03 一种处理客户端请求的方法和装置 Active CN103986690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410131995.5A CN103986690B (zh) 2014-04-03 2014-04-03 一种处理客户端请求的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410131995.5A CN103986690B (zh) 2014-04-03 2014-04-03 一种处理客户端请求的方法和装置

Publications (2)

Publication Number Publication Date
CN103986690A CN103986690A (zh) 2014-08-13
CN103986690B true CN103986690B (zh) 2017-08-04

Family

ID=51278515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410131995.5A Active CN103986690B (zh) 2014-04-03 2014-04-03 一种处理客户端请求的方法和装置

Country Status (1)

Country Link
CN (1) CN103986690B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810019B (zh) * 2018-07-13 2020-12-01 腾讯科技(深圳)有限公司 拒绝服务攻击防御方法、装置、设备和存储介质
CN109309685B (zh) * 2018-10-31 2021-10-29 北京百度网讯科技有限公司 信息传输方法和装置
CN111107075A (zh) * 2019-12-13 2020-05-05 中国工商银行股份有限公司 请求响应方法、装置、电子设备和计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255137A1 (en) * 2003-01-09 2004-12-16 Shuqian Ying Defending the name space
KR100828372B1 (ko) * 2005-12-29 2008-05-08 삼성전자주식회사 서비스 거부 공격으로부터 서버를 보호하는 방법 및 장치
CN100589489C (zh) * 2006-03-29 2010-02-10 华为技术有限公司 针对web服务器进行DDOS攻击的防御方法和设备
CN101030860A (zh) * 2007-02-15 2007-09-05 华为技术有限公司 一种防御通过自动软件对服务器进行攻击的方法和设备
CN101141256B (zh) * 2007-08-03 2010-05-26 哈尔滨工程大学 基于Ajax获取变长交互性验证码的方法
CN101299753B (zh) * 2008-06-17 2012-12-05 浙江大学 具有web服务安全控制机制的代理服务器
CN102957682A (zh) * 2011-08-30 2013-03-06 北京百度网讯科技有限公司 一种用于基于验证安全等级提供图片验证码的方法与设备

Also Published As

Publication number Publication date
CN103986690A (zh) 2014-08-13

Similar Documents

Publication Publication Date Title
US10326790B2 (en) Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US10079854B1 (en) Client-side protective script to mitigate server loading
US9516051B1 (en) Detecting web exploit kits by tree-based structural similarity search
US20220124094A1 (en) Integrated bot and captcha techniques
CN107645478B (zh) 网络攻击防御系统、方法及装置
CN108259425A (zh) 攻击请求的确定方法、装置及服务器
JP6347557B2 (ja) サービス提供システム、サービス提供方法、照合装置、照合方法及びコンピュータプログラム
US10250629B2 (en) Captcha risk or score techniques
US10798123B2 (en) Malware detection and prevention system
CN103493061A (zh) 用于应对恶意软件的方法和装置
EP2529321A2 (en) Url filtering based on user browser history
EP3987728B1 (en) Dynamically controlling access to linked content in electronic communications
US8789177B1 (en) Method and system for automatically obtaining web page content in the presence of redirects
CN107135203A (zh) 一种终端访问控制策略优化的方法及系统
CN103929498B (zh) 处理客户端请求的方法和装置
CN103986690B (zh) 一种处理客户端请求的方法和装置
CN109688153A (zh) 使用主机应用/程序到用户代理的映射的零日威胁检测
JP6506384B2 (ja) サービス提供システム、サービス提供方法、照合装置、照合方法及びコンピュータプログラム
US20160328551A1 (en) Client profile and service policy based captcha techniques
CN105592070B (zh) 应用层DDoS防御方法及系统
CN103997494B (zh) 一种抵御黑客攻击的方法和系统
CN113014601B (zh) 一种通信检测方法、装置、设备和介质
RU2752241C2 (ru) Способ и система для выявления вредоносной активности предопределенного типа в локальной сети
JP2018163677A (ja) サービス提供システム、サービス提供方法、照合装置、照合方法及びコンピュータプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191128

Address after: 100176 room 222, 2f, building C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: Beijing Jingdong three hundred and sixty degree e-commerce Co., Ltd.

Address before: 11 East Building No. 65 West Park District 100080 Beijing City Shan creative Haidian District xingshikou Road West of the 1-4 layer 1-4 layer

Co-patentee before: Beijing Jingdong Century Commerce Co., Ltd.

Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd.