CN104519018B - 一种防止针对服务器的恶意请求的方法、装置和系统 - Google Patents
一种防止针对服务器的恶意请求的方法、装置和系统 Download PDFInfo
- Publication number
- CN104519018B CN104519018B CN201310455061.2A CN201310455061A CN104519018B CN 104519018 B CN104519018 B CN 104519018B CN 201310455061 A CN201310455061 A CN 201310455061A CN 104519018 B CN104519018 B CN 104519018B
- Authority
- CN
- China
- Prior art keywords
- network request
- user
- request
- verification
- sending
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 242
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 29
- 235000014510 cooky Nutrition 0.000 claims abstract description 24
- 238000010200 validation analysis Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 37
- 230000002159 abnormal effect Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005242 forging Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种防止针对服务器的恶意请求的方法、装置和系统。该方法包括:对接收的第一网络请求进行第一验证,并返回第一验证的验证结果及生成的会话令牌至发送第一网络请求的用户端的cookie中;对接收到的第二网络请求携带的验证结果和会话令牌等做第二验证,若验证通过则响应第二网络请求做相应业务数据处理,否则,验证未通过则拦截第二网络请求。本申请在恶意请求验证过程中实时的更新黑名单用户数据表,并对发送恶意请求的用户进行黑名单用户标记。以及基于用户获得的会话令牌对用户发送的网络请求(第二网络请求)进行业务处理。从而有效的降低了恶意请求的误判率和漏判率,提高了恶意请求判断的准确性。
Description
技术领域
本申请涉及互联网技术领域,更具体地涉及一种防止针对服务器的恶意请求的方法、装置和系统。
背景技术
随着互联网的高速发展,网络恶意行为已经成为业界不可忽视的问题。网络恶意行为可以是为达到一定目的而采取的非正常手段,如,网络攻击、恶意请求等。在网络环境中,网络恶意行为可以在极短的时间内致使网站不能正常为用户提供服务,这严重影响了互联网的正常运作。
恶意请求,可以是通过应用程序,在一段时间内,不断的向服务器发送的、并影响服务器正常运作的超文本传输协议(http)网络请求。例如,通过这种方式干扰正常用户的网络行为或者以此攻击一个web网站。由于这些请求非常密集,给服务器造成了巨大的压力。
Web网站向用户提供服务,可以采用两层服务器作为支撑,如图1所示为现有技术的web网站服务器架构示意图。
在该web网站中包含多个web服务器(第一层服务器)和多个可以处理不同业务数据的应用服务器(第二层服务器)。其中,每个web服务器可以接收来自用户的网络请求,并将该网络请求转发给该网络请求对应的应用服务器。每个应用服务器可以处理不同的业务数据,例如,在某一个提供BBS论坛服务的网站中,应用服务器A用于处理论坛中“计算机板块”相关的数据,应用服务器B用于处理论坛中“通信板块”相关的数据等。应用服务器可以将处理好的数据返回给转发该网络请求的web服务器,并由该web服务器将处理好的数据返回用户。
在现有技术中,web网站为了应对恶意请求给服务器和/或用户带来的问题,可以通过web服务器或应用服务器对恶意请求进行拦截。
方法一:采用web服务器拦截恶意请求,可以开发web服务器侧的插件,通过该插件分析来自用户的网络请求。若分析结果触发了某一拦截条件,例如:该用户的访问频度超过了预设的阈值(该阈值是正常用户无法达到的一个值),则可以拦截该网络请求。对于非恶意请求则可以传递给应用服务器进行相应的业务处理。
但是,采用方法一对恶意请求进行拦截的准确性不高,容易造成误判。因为,现有技术的web服务器不能解析用户信息。并且,用户是通过运营商所在的服务器,例如,通过电信服务器或网通服务器,将网络请求发送至web服务器,这样,同一地区内的大量用户的IP地址可能相同。从而,对于恶意请求,web服务器不能定位到用户,只能确定大致范围(地区),容易对该范围内的未发送恶意请求的用户造成误判。例如,某一范围内的访问量较大,并且该访问量恰巧达到预设的阈值,对该范围内的用户所发送的网络请求进行拦截,则会影响该地区内未发送网络请求的用户进行正常的使用。
方法二:采用应用服务器拦截恶意请求,对于web服务器转发的网络请求,可以在处理业务数据之前对发送网络请求的用户进行身份验证,例如,进行黑名单检查,查看该用户是否有发送恶意请求的不良记录,若存在不良记录则可以限制正常的业务流程,对用户的网络请求进行拦截。该黑名单检查可以通过预先对大量的用户数据进行分析,找出发送恶意请求的用户,并列入黑名单中。该方法可以通过黑名单检查的方式减少误判。
但是,该方法二所生成的黑名单不能实时的对恶意请求进行拦截。因为,黑名单是通过对一段时间内的用户数据进行分析而得出,并更新之前的黑名单。对于新增的发送恶意请求的用户,即,尚未加入黑名单的用户,会造成大量的漏判,影响服务器的正常工作以及其他用户正常使用。
发明内容
本申请的主要目的在于提供一种防止针对服务器的恶意请求的方法、装置和系统,以解决现有技术存在的网络恶意请求的判断方法准确性低,误判率和漏判率高的问题。
根据本申请的一方面,提供了一种防止针对服务器的恶意请求的方法,包括:接收第一网络请求,并对第一网络请求进行第一验证;将所述第一验证的验证结果及基于第一网络请求生成的会话令牌返回至发送第一网络请求的用户端的cookie中;所述第一验证的验证结果用于标识发送第一网络请求的用户端是否通过验证;所述会话令牌用于标识用户对基于第一网络请求获取的页面数据进行操作的权限;接收第二网络请求,对接收到的第二网络请求进行第二验证;其中,第一网络请求为页面数据请求,第二网络请求为用户基于第一网络请求获取的页面数据进行操作而发出的数据处理请求;第二网络请求携带所述第一验证的验证结果及会话令牌;所述第二验证包括:验证所述第二网络请求携带的所述第一验证的验证结果及会话令牌,以及当所述第二网络请求携带的所述第一验证的验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中;若所述第二网络请求验证通过,则针对所述第二网络请求进行相应业务数据处理;若所述第二网络请求验证未通过,则拦截所述第二网络请求。
其中,所述第二网络请求验证未通过,包括:所述第二网络请求携带的所述第一验证的验证结果中包括黑名单用户标记,和/或所述第二网络请求携带的所述会话令牌不合法,和/或所述第二请网络请求不存在会话令牌,和/或所述第二网络请求的用户信息与预设的黑名单中的黑名单信息相匹配。
其中,所述第二网络请求验证未通过,还包括:当所述第二网络请求携带的会话令牌不合法时,和/或,当所述第二网络请求不存在会话令牌时,将所述第二验证的验证结果返回至发送所述第二网络请求的用户端的cookie中,以根据所述第二验证的验证结果,为发送所述第二网络请求的用户添加黑名单用户标记。
其中,对所述第一网络请求进行第一验证,至少包括:验证所述第一网络请求是否包含的黑名单用户标记;和/或;验证发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,是否大于预设的时间间隔阈值;和/或,验证发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,是否等于预设的请求次数阈值;和/或,将所述第一网络请求中包含的用户信息与所述预设的黑名单中的黑名单信息进行匹配。
其中,所述第一网络请求验证未通过,包括:所述第一网络请求中包含黑名单用户标记;和/或发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,小于或等于预设的时间间隔阈值;和/或发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,等于预设的请求次数阈值;和/或所述第一网络请求中包含的用户信息与预设的黑名单中的黑名单信息相匹配。
其中,当发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值时,和/或当发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数等于预设的请求次数阈值时,根据所述第一验证的验证结果,为发送所述第一网络请求的用户添加黑名单用户标记。
根据本申请的另一方面,提供了一种防止针对服务器的恶意请求的系统,包括:web服务器,第一应用服务器,第二应用服务器;其中,所述web服务器接收网络请求,并对所述网络请求进行初步地恶意请求验证,转发通过验证的所述网络请求至第一应用服务器,拦截未通过验证的所述网络请求;所述第一应用服务器接收所述web服务器转发的网络请求,并对所述网络请求进行进一步的恶意请求验证,为发送通过验证的所述网络请求的用户分配合法的会话令牌或转发所述网络请求到第二应用服务器,为发送未通过验证被拦截的所述网络请求的用户添加黑名单用户标记和/或拒绝执行业务数据处理;所述第二应用服务器接收所述第二应用服务器转发来的网络请求,并针对所述网络请求进行相应的业务数据处理。
其中,所述网络请求包括第一网络请求或第二网络请求,而所述web服务器对所述网络请求进行初步地恶意请求验证包括:验证所述第一网络请求的第一网络请求信息和所述第二网络请求的第二网络请求信息是否包含黑名单用户标记,若包含黑名单用户标记,则验证不通过;所述第一应用服务器对所述网络请求进行进一步的恶意请求验证包括:验证发送所述第一网络请求的用户上一次发送第一网络请求的时间与本次发送第一网络请求的时间是否小于预定的时间间隔阈值,和/或发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数是否等于预设的请求次数阈值,和/或所述第一网络请求的用户的信息是否存在相匹配的黑名单信息,若是,则验证不通过;验证发送所述第二网络请求的会话令牌是否合法,和/或所述第二网络请求信息是否存在相匹配的黑名单信息,若是,则验证不通过。
根据本申请的又一方面,提供了一种防止针对服务器的恶意请求的装置,包括:第一验证模块,用于接收第一网络请求,并对第一网络请求进行第一验证;返回模块,用于将所述第一验证的验证结果及基于第一网络请求生成的会话令牌返回至发送第一网络请求的用户端的cookie中;所述第一验证的验证结果用于标识发送第一网络请求的用户端是否通过验证;所述会话令牌用于标识用户对基于第一网络请求获取的页面数据进行操作的权限;第二验证模块,用于接收第二网络请求,对接收到的第二网络请求进行第二验证;其中,第一网络请求为页面数据请求,第二网络请求为用户基于第一网络请求获取的页面数据进行操作而发出的数据处理请求;第二网络请求携带所述第一验证的验证结果及会话令牌;所述第二验证包括:验证所述第二网络请求携带的所述第一验证的验证结果及会话令牌,以及当所述第二网络请求携带的所述第一验证的验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中;其中,若所述第二网络请求验证通过,则针对所述第二网络请求进行相应业务数据处理;若所述第二网络请求验证未通过,则拦截所述第二网络请求。
其中,所述第二验证模块中,第二网络请求验证未通过,至少包括:所述第二网络请求携带的所述第一验证的验证结果中包括黑名单用户标记,和/或所述第二网络请求携带的所述会话令牌不合法,和/或所述第二请网络请求不存在会话令牌,和/或所述第二网络请求的用户信息与预设的黑名单中的黑名单信息相匹配;和/或,当所述第二网络请求携带的会话令牌不合法时,和/或,当所述第二网络请求不存在会话令牌时,将所述第二验证的验证结果返回至发送所述第二网络请求的用户端的cookie中,以根据所述第二验证的验证结果,为发送所述第二网络请求的用户添加黑名单用户标记。
其中,所述第一验证模块中,对所述第一网络请求进行第一验证,至少包括:验证所述第一网络请求是否包含的黑名单用户标记;和/或;验证发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,是否大于预设的时间间隔阈值;和/或,验证发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,是否等于预设的请求次数阈值;和/或,将所述第一网络请求中包含的用户信息与所述预设的黑名单中的黑名单信息进行匹配。
其中,第一验证模块还包括:所述第一网络请求验证未通过,至少包括:该第一网络请求中包含黑名单用户标记;和/或发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,小于或等于预设的时间间隔阈值;和/或发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,等于预设的请求次数阈值;和/或所述第一网络请求中包含的用户信息与预设的黑名单中的黑名单信息相匹配;和/或当发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值时,和/或当发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数等于预设的请求次数阈值时,根据所述第一验证的验证结果,为发送所述第一网络请求的用户添加黑名单用户标记。
与现有技术相比,根据本申请的技术方案具有以下有益效果:
本申请在恶意请求验证过程中实时的更新黑名单用户数据表,并对发送恶意请求的用户进行黑名单用户标记。以及基于用户获得的会话令牌对用户发送的网络请求(第二网络请求)进行业务处理。从而有效的降低了恶意请求的误判率和漏判率,提高了恶意请求判断的准确性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是现有技术的web网站服务器架构示意图;
图2是根据本申请的一实施例的防止针对服务器的恶意请求的方法的流程图;
图3是根据本申请的一实施例的防止针对服务器的恶意请求的系统的结构图;以及
图4是根据本申请的一实施例的防止针对服务器的恶意请求的装置的结构图。
具体实施方式
本申请的主要思想在于,防范针对服务器的恶意请求,降低非正常访问的用户反复访问网页数据或反复请求业务数据处理的情形等。对接收的用户的第一网络请求做验证第一验证,第一网络请求为页面数据请求。当第一网络请求验证通过,返回用户页面数据,并且,可以返回cookie黑名单用户标记为空(无黑名单标记)、以及请求业务数据处理用的合法会话令牌。当第一验证未通过,不返回用户页面数据,并且,可以返回cookie黑名单用户标记和空会话令牌(无会话令牌)而不能请求业务数据处理。对接收的第二网络请求进行第二验证,第二网络请求为用户基于第一网络请求获取的页面数据进行操作而发出的数据处理请求,第二网络请求携带经第一验证产生的验证结果(cookie有无黑名单用户标记)及会话令牌。通过第二验证对第二网络请求携带的第一验证产生的验证结果及会话令牌,以及,当该验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中。若第二验证通过,则针对第二网络请求进行相应业务数据处理否则,拦截第二网络请求。通过前一次对用户请求的多方式验证的结果,影响到用户下一次请求的验证结果,保障服务器的安全和性能。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图2所示,图2是根据本申请的一实施例的防止针对服务器的恶意请求的方法的流程图。此仅为一个例子,本申请的方法不限于此。
在步骤S210处,接收来自用户的第一网络请求,并对第一网络请求进行第一验证。
第一网络请求可以是一个超文本传输协议请求(Http请求),用于向服务器侧请求返回用户需要的页面数据(页面资源)。该页面数据,可以在用户侧渲染产生对应的页面。服务器侧,包括可以处理网络请求的各个服务器,诸如:应用服务器、web服务器等。其中,所述页面数据(页面资源)可以包括用于实现某些业务功能的代码或资源(统称:业务数据)。这些业务功能比如:提交评论、创建订单、查看、转账、搜索等等。
具体而言,当用户打开一个网站的页面或者选择一个链接时,可以向服务器侧发送第一网络请求。其中,链接可以包括图片携带的链接、文字携带的链接等。例如:用户点击网页链接地址,向服务器侧发送页面访问请求。服务器侧(如,web服务器)可以接收到该第一网络请求。
该第一网络请求可以携带与该用户本次页面访问相关的内容,例如用户名、密码、用户ID等用户信息及需要打开的页面的页面地址等等。
服务器在向用户返回页面数据之前,可以基于第一验证逻辑验证第一网络请求。第一验证逻辑是指根据第一验证内容判断(验证)来自第一用户的第一网络请求是否为恶意请求。
其中,恶意请求或者说非正常的网络请求,包括:用户向服务器发送的具有恶意攻击的、危害服务器安全的网络请求;或者,反复向服务器发送的、超过预定频率的,给服务器造成过大负担和压力,严重浪费服务器资源,影响服务器正常工作性能等的网络请求。比如:(1)用户的网络请求中携带有病毒程序等,会导致服务器被病毒攻击。(2)用户以某一高频率向服务器请求返回页面数据或请求业务数据处理等,导致服务器侧数据处理过大、影响其他用户的正常网络访问或服务器崩溃等恶果。常见的恶意请求的情形,可以包括用户在一段时间内不断向服务器发送网络请求,并且发送网络请求的次数和间隔,是普通用户通过正常的手动操作所不能达到的。例如:电子商务网站促销活动,某些用户会利用某类程序抢拍低价商品,这类程序在极短的时间内为该用户产生的网络请求量非常密集,反复访问服务器,引起服务器负载过高,即为恶意请求对服务器造成的巨大压力,并严重浪费网络即服务器的资源。对于恶意请求的判断和识别,服务器侧可以构建恶意请求验证逻辑,对用户发送来的网络请求是否为恶意的,进行验证,以判断该网络请求是否恶意请求,拦截恶意请求而响应非恶意请求(正常的网络请求),以保障服务器侧的安全和正常工作。响应请求,包括:服务器对用户发来的请求,返回其请求的数据或执行其请求的处理。未响应请求,包括:服务器未针对用户发来的请求,返回其请求的数据或拒绝执行其请求的处理。
第一验证逻辑(第一验证)至少包括以下第一验证内容:验证第一网络请求包含的黑名单用户标记,和/或,验证发送第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,和/或,验证发送该第一网络请求的用户在预定时间段内发送该第一网络请求的次数,和/或,将该第一网络请求包含的用户信息与预设的黑名单中的黑名单信息进行匹配,等等。第一验证内容中的各项可以单独使用、也可以相互组合使用。
具体的验证判断方式,比如,若第一网络请求中包括黑名单用户标记,和/或,发送第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值,和/或,发送第一网络请求的用户在预定时间段内发送第一网络请求的次数等于预设的请求次数阈值,和/或,第一网络请求的用户信息与预设的黑名单中的黑名单信息相匹配,则可以判断该第一网络请求是恶意请求,该第一网络请求验证不通过。若上述情形都不存在,则验证通过。
黑名单用户标记black可以是服务器侧对发送恶意请求的用户所进行的标记,可以作为验证是否通过的结果标识。是第一验证逻辑在对第一网络请求验证后返回的验证结果的一种情形。验证结果为未通过,黑名单用户标记black=1标记到用户cooike中。验证结果为通过,黑名单用户标记black=0即不标记black到用户cookie中。
在一个实施例中,若发送第一网络请求的用户是在服务器侧已经被记录存档的黑名单用户,那么在该第一网络请求的第一网络请求信息中,将会携带一个黑名单用户标记。该黑名单用户标记,可以是用户在发送该第一网络请求之前与服务器侧进行数据交互期间,因为其存在发送恶意请求的行为,而由服务器侧对应于该用户产生并设置的。并且,该黑名单用户标记由服务器侧返回并添加该标记到该用户的用户信息中,以便该用户在后续的网络访问、请求、数据交互等过程中,都可以携带该黑名单用户标记。进一步地,添加黑名单用户标记,比如,从服务器侧将该黑名单用户标记返回给该发送第一网络请求的用户,并在该用户侧进行存储,例如:将黑名单用户标记black=1存储于用户端的cookie中。当该用户再次发送网络请求(无论第一网络请求还是第二网络请求)时,则都会在网络请求中携带该黑名单用户标记。例如,对第一网络请求的验证过程中,确定了第一网络请求是恶意请求时,将发送第一网络请求用户认定为非法的用户,并把非法的用户加入/登记到服务器侧的黑名单中(表1所示),记为黑名单用户,同时在该用户所使用的用户端的cookie中添加黑名单用户标记,如,黑名单用户标记black=1,用于表示该用户是黑名单用户。
黑名单用户ID | 黑名单用户标记 |
124 | 1 |
125 | 1 |
表1
具体地,在一个网站中注册的用户,可以得到一个具有唯一性的用户编码(用户ID),对被认定为发送恶意请求的用户,即应添加到黑名单中的用户,可以利用该具有唯一性的用户ID,作为黑名单用户ID来记录该添加至黑名单中的用户。并且,还可以生成黑名单用户对应的黑名单用户标记(black)“1”,以返回给该黑名单用户,添加到其诸如cookie等能带入用户发送的网络请求的信息中。从而,该黑名单用户再次发送网络请求(如:第一网络请求或第二网络请求)时,均会携带该黑名单用户标记。例如:表1中,124(用户ID)唯一的对应一个用户,125唯一的对应一个用户,并且该124和125对应的用户为黑名单用户,为124和125对应的黑名单用户添加黑名单用户标记,当124或125对应的黑名单用户再次发送网络请求时,会在网络请求中携带黑名单用户标记,如black=1。
在另一个实施例中可以利用时间间隔阈值、预定时间段内发送预设请求次数的方式来判断第一网络请求是否为恶意请求。例如:当用户本次发送第一网络请求与上一次发送第一网络请求的时间间隔,比预设的3秒时间间隔阈值短或者相等(两次发送的时间间隔小于等于预设的时间间隔阈值)时,则该用户发送的第一网络请求被判定为恶意请求。又例如:当某用户发送第一网络请求的次数在预设的一天的时间段内超过了预设请求次数100次,即在预定时间段内发送该第一网络请求的次数超过了预设的请求次数的阈值时,则该用户发送的第一网络请求被判定为恶意请求。
进一步,可以将短时间内反复/频繁/多次发送该第一网络请求的该用户添加至黑名单中存档记录,并标记该用户为黑名单用户,进而将该黑名单用户标记返回到该用户侧以便添加标记到用户信息中,从而,当该用户再次发送网络请求时,该网络请求不论是第一网络请求、第二网络请求或其他网络请求,在网络请求中均会带有该黑名单用户标记,从而被服务器侧拦截或拒绝。
进一步的,对于预设发送请求次数的阈值(上限)或预设发送请求之间的时间间隔阈值(下限),可以根据页面中涉及的业务功能的不同而预先为每个业务功能进行设置。比如,可以根据页面中涉及的业务功能的不同,为每个业务功能预设发送第一网络请求次数的上限、发送多次第一网络请求之间的时间间隔的下限。为每个业务可以预设不同的时间间隔阈值和请求次数阈值,或者,也可以为多个业务预设统一的时间间隔阈值和请求次数阈值。其中,预设的时间间隔阈值和请求次数阈值为正常用户所不能达到的。该正常用户,即不向服务器发送恶意请求的用户。
例如,为所有业务功能预设相同的时间间隔阈值和相同的请求次数阈值,如表2所示:
表2
也即是说,正常用户发送两次第一网络请求的时间间隔不可能小于或等于10秒。正常用户在一天内发送第一网络请求的次数不可能达到100次。
这样,可以用预设的时间间隔阈值和请求次数阈值来衡量(验证)该第一网络请求是否为恶意请求。
将用户发送上一次第一网络请求和发送本次第一网络请求的时间间隔与预设的时间间隔阈值进行比较。若该时间间隔小于或等于时间间隔阈值,则表示该第一网络请求为恶意请求,验证不通过。反之,该第一网络请求不是恶意请求,验证通过。其中,服务器侧可以记录用户每次发送第一网络请求的时间。例如:若用户两次发送第一网络请求的时间间隔为5秒,该时间间隔小于预设的时间间隔阈值10秒,这是正常用户所不能达到的,则表明该用户发送的第一网络请求为恶意请求,蓄意反复访问服务器,加大服务器侧压力并影响网络访问效率,验证不通过,对于该用户本次发送的第一网络请求可以进行拦截,终止该用户本次的页面访问。
将用户发送第一网络请求的次数与预设的请求次数阈值进行比较。若在一段时间内,该用户发送第一网络请求的次数等于请求次数阈值,则表示该用户所发送的第一网络请求为恶意请求,验证不通过。若在一段时间内,用户发送第一网络请求的次数小于请求次数阈值,则表示该用户所发送的第一网络请求不是恶意请求,验证通过。例如:在一天内,用户发送的第一网络请求数量为100次,等于预设的请求次数阈值100次/天,是正常用户所不能达到的请求次数,则该用户发送的第一网络请求为恶意请求,验证不通过,对于该用户本次发送的第一网络请求可以进行拦截,终止第一用户本次的页面访问。当发送第一网络请求的用户,上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值时;和/或当发送所述第一网络请求的用户,在预定时间内发送第一网络请求的次数等于预设的请求次数阈值时,可以将该用户加入黑名单,并为该发送第一网络请求的用户添加黑名单用户标记。
当该用户再次发送网络请求(无论第一网络请求还是第二网络请求)时,则都会在网络请求中携带该黑名单用户标记。对于携带黑名单用户标记的用户所发送的网络请求将会被服务器(如,web服务器)拦截。也正是因为这个原因,用户所发送的第一网络请求的次数不可能大于预设的请求次数阈值。
服务器侧可以对用户在一段时间内发送的第一网络请求进行计数。具体而言,用户每发送一次第一网络请求,服务器侧可以更新该用户发送第一网络请求的次数。在未达到预设的请求次数阈值时,用户每发送一次第一网络请求,即在上一次计数的结果上加1。当该用户发送第一网络请求的次数达到预设的请求次数阈值时,则将该用户添加至黑名单中。例如,一天内,用户当前发送第一网络请求的次数是98次,不及预设的请求次数阈值100次/天,当用户再次发送第一网络请求时,则在次数98的基础上加1,则将第一网络请求的次数更新为99次。当该用户又一次发送第一网络请求时,则继续在更新后的99次的基础上加1,这时,该用户发送第一网络请求的次数已经达到预设请求次数阈值100次/天,就可以判定第一网络请求为恶意的,并将该用户添加至黑名单中。
例如,在表1中,125(用户ID)被添加至黑名单中,则表示该用户ID对应的用户向服务器发送的第一网络请求数量已经达到预设的请求次数阈值,需要拦截该用户再次发送的网络请求(第一网络请求、其二网络请求、其他网络请求),并为该用户生成黑名单用户标记,返回到该用户侧,使得该用户再次发送网络请求时携带该黑名单用户标记。
在又一个实施例中,当服务器侧对接收到的第一网络请求,没有发现其携带的用户信息中,在如cookie中存在黑名单用户标记(可能被用户篡改删除、或者没有将该标记添加上、或者伪造了身份等等,导致没有该black=1),还可以通过服务器侧进一步检测发送网络请求的用户所具有的用户ID,是不是在存档的黑名单上,即匹配黑名单的信息。若匹配上即该用户被列入了黑名单、则该用户发送的第一网络请求被判定为恶意请求,若未匹配上则说明该用户未被列入黑名单。进一步的,匹配上的该用户是黑名单上记录在案的,还可以将黑名单中记录的黑名单用户标记返回到该用户侧进而补充或重新添加标记到该用户的用户信息中,如:cookie中black=1。
由此,服务器侧还可以通过将第一网络请求中的第一网络请求信息与黑名单信息进行匹配,从而确定,发送来的第一网络请求是否为恶意请求。即便用户通过任意方法将第一网络请求中的第一网络请求信息包含的黑名单用户标记去除,也仍然可以通过第一网络请求信息与黑名单信息的匹配(例如,将发送第一网络请求的用户的“用户ID”与黑名单信息中的“用户ID”进行匹配),匹配出一致的即该用户在该黑名单中是黑名单用户,则说明该用户有意伪造成正常用户,则可以将该第一网络请求判定为恶意请求,该请求验证不通过。
在步骤S220出,将第一验证的结果及基于第一网络请求生成的会话令牌返回至发送第一网络请求的用户端的cookie中。
第一验证的结果用于标识发送第一网络请求的用户端是否通过验证。会话令牌用于标识用户对基于第一网络请求获取的页面数据进行操作的权限。
其中,第一验证的结果可以包括第一网络请求验证通过、第一网络请求验证不通过。
<一>若第一网络请求验证通过,则为发送第一网络请求的用户分配会话令牌。
具体而言,对于通过验证的第一网络请求,服务器侧对验证通过的该第一网络请求作出响应,即,提供其请求的页面数据。服务器侧返回给发送该第一网络请求的用户其需要的(请求的)页面数据(页面资源)。此时,服务器侧可以为发送该第一网络请求的用户分配一个会话令牌。用户可以利用会话令牌请求服务器侧进行业务数据的处理。
该会话令牌(token)可以表示用户对业务功能的操作权限。即,被分配了会话令牌的用户,具有操作(使用)页面中的业务功能,并请求服务器对操作业务功能所对应的业务数据进行业务数据处理的权限。其中,该会话令牌是合法的非空值字符串。只有用户的网络请求(如,第二网络请求)具备会话令牌,服务器侧才可以针对用户的网络请求(如,第二网络请求)处理相应的业务数据。
其中,合法的会话令牌与“用户ID”和业务功能可以存在关联,并且合法的会话令牌具有唯一性。会话令牌中,可以包含用户ID、业务功能的编码及会话令牌编码,等。会话令牌中包含的用户ID即获得所述会话令牌的用户的ID。会话令牌中的业务功能的编码即服务器侧根据第一网络请求返回给用户的页面数据所涉及的业务功能的编码。会话令牌编码用于唯一标识所述会话令牌。比如,该会话令牌可以具有一定的格式,可以假设会话令牌长度为32位的字符串,前3位字符是用户ID,紧接着用户ID后面的3位字符是业务功能编码,可以将剩余的26位字符用于区别会话令牌的会话令牌编码,使用户每次获得的会话令牌具有唯一性。
当第一网络请求验证通过时,服务器侧可以将分配给该用户的会话令牌、以及可以将第一网络请求所请求的页面的页面数据,都返回给用户。从而可以通过页面数据来渲染页面,并将页面中的业务功能呈现给用户。
在一个实施例中,针对通过第一验证的第一网络请求,服务器可以为发送该第一网络请求的用户分配一个为空值的黑名单用户标记,如:black=0。该为空值的黑名单用户标记没有任何效力,不妨碍用户再次发送网络请求。也即,服务器为用户返回的信息中可以包括合法的会话令牌和空值黑名单用户标记。
可以将会话令牌设置为:一个会话令牌只能给一个用户使用一次,并且有一定时间限制的。
<二>若第一网络请求验证未通过,则拦截第一网络请求。
当第一网络请求未通过验证时,则可以表示该第一网络请求是恶意请求。对于恶意请求需要进行拦截,终止该恶意请求。此时,服务器侧对验证未通过的该第一网络请求,不会作出响应,即拒绝响应,其不会返回用户其需要的(请求的)页面数据(页面资源)。
具体而言,当第一网络请求未通过验证时,则表示该第一网络请求未通过验证、是恶意请求,为了不影响服务器侧的正常运行以及正常用户的网络行为,可以对恶意请求进行拦截,终止该恶意请求,而服务器侧不对其进行处理(如,不返回其需要的页面数据等)。并且,对于满足一定条件的恶意请求,如,对发送第一网络请求次数达到预设的请求次数阈值的用户进行黑名单用户标记。以此防止用户再次发送恶意请求。
服务器侧可以对用户发送的正常的网络请求进行相应的处理。即来自正常用户的网络请求,这里的正常用户,即不向服务器发送恶意请求的用户,可以通过发送第一网络请求来获取用于渲染页面的页面数据以及会话令牌,等。其中,在该页面中,可以涉及业务功能。
服务器侧可以对非正常用户发送的非正常的网络请求(恶意请求)进行相应的防卫处理,如拦截网络请求或拒绝业务数据处理等。
在一个实施例中,可以预设请求次数计数清零时间和黑名单用户清除时间。比如,从用户发送第一次第一网络请求开始,经过请求次数计数清零时间,并直到请求次数计数清零时间结束的时刻,可以将对该用户的第一网络请求的计数清零,当该用户再次发送第一网络请求时,从1开始重新计数。该请求次数计数清零时间可以是6小时、12小时、24小时,等等。当用户成为黑名单中的黑名单用户,这里,无论是发送第一网络请求的用户、还是发送第二网络请求的用户,并持续了黑名单用户清除时间后,可以将该黑名单用户从黑名单中清除,并消除该用户的黑名单用户标记,使该用户重新拥有普通用户的权利(如回归正常用户)。如,在网络竞拍活动中,用户意图通过外挂程序恶意抢拍(正常用户无法达到的服务器访问频率),当活动结束,该用户也不再恶意抢拍,则其回归正常用户范畴。
在一个实施例中,针对未通过第一验证的第一网络请求,服务器可以为发送该第一网络请求的用户分配一个为空值的会话令牌,该为空值的会话令牌一种情形可以是:无会话令牌。验证未通过,则服务器为用户返回的信息中包括黑名单用户标记(验证结果)和空值会话令牌(无会话令牌)。
在步骤S230处,接收第二网络请求,对接收到的第二网络请求进行第二验证。
第二网络请求可以是一个Http请求,用于请求服务器侧对用户所产生的业务数据进行处理。第一网络请求由服务器侧作出响应,即返回了页面数据。基于此,页面数据中包含业务数据,页面数据产生(渲染出)相应的页面,页面中包含业务功能,即业务数据对应的业务功能,而用户可以使用业务功能(即操作业务)。由用户的操作,产生第二网络请求,并发送给服务器侧,以请求对与业务功能相关的数据,即页面数据中涉及的业务数据进行处理。
进一步,当服务器侧对用户的第一网络请求作出了响应、并且为该用户分配了合法的会话令牌时,服务器侧可以对该用户操作业务功能所产生的合法的第二网络请求执行相应的业务数据处理。合法的第二网络请求即验证通过的第二网络请求,这里指响应第二网络请求以执行业务数据处理之前,先根据第二验证逻辑验证(第二验证)通过的第二网络请求。当服务器侧对该业务数据的处理完毕时,该会话令牌失效。也即是说,一个会话令牌用于一次业务数据的处理。
具体地,在通过第一网络请求获得页面数据后,正常用户可以使用页面中的业务功能对页面进行操作,例如,点击提交评论、创建订单的按钮。根据正常用户对页面的操作,该正常用户可以向服务器侧发送携带了会话令牌的第二网络请求,请求服务器侧处理操作产生的业务数据。服务器侧负责处理业务数据并返回处理结果给该正常用户。例如,评论提交成功或订单创建成功的提示信息等等。
其中,第二验证逻辑(第二验证)包括的第二验证内容,如:验证第二网络请求携带的所述第一验证的验证结果及会话令牌,以及当第二网络请求携带的第一验证的验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中。
其中,验证第一验证的验证结果,可以包括验证第二网络请求携带的验证结果中是否包含黑名单用户标记,包含黑名单用户标记说明第一验证的验证结果为不通过,不包含黑名单用户标记说明第一验证的验证结果为通过。
具体而言,用户所发送的第二网络请求中可以包含所要请求处理的业务数据,cookie等等。其中,在cookie中可以包括用户信息,例如:用户的会话信息(Session)、用户名或用户ID等。用户的用户名,用户ID可以根据用户的会话信息获得。进一步,第二网络请求信息中可以包括会话令牌token等。而由本申请的方案,如果未对第一网络请求进行响应,即不响应该请求不返回请求的页面数据,那么,服务器侧既不会返回请求的页面数据,同时也不会为第一网络请求的用户分配会话令牌token或者说,返回空值会话令牌token;甚至还可能将该第一网络请求的用户记为黑名单用户等。从而,可以在验证第二网络请求时,对会话令牌token进行判断,确定第二网络请求是否为恶意的。
其中,如果在第二网络请求信息中不包含会话令牌token,或者说,会话令牌为空值,则可以表示用户发送的该第二网络请求为恶意请求,即该用户发送的第二网络请求被认定为是不被允许的、非法的,该用户发送的第一网络请求并未被服务器响应,甚至有可能该第二网络请求是根据其他用户或以往的页面数据等伪造的。即如果未对第一网络请求做出响应,则不会为发送该第一网络请求的用户分配会话令牌token。
在第二网络请求信息中不存在会话令牌token,包括会话令牌token是空值的情形,可以认为,发送第二网络请求的用户,只是基于伪造(模拟的)页面数据发起的第二网络请求,该用户不具备服务器为正常用户分配的会话令牌token。对于该类情况的原因,可能是该用户以其他途径获取到其他用户(或自身以往获得过)的页面数据,进而伪造业务数据。或者,服务器在为该用户返回会话令牌token时,会话令牌token丢失,或者第一网络请求未被响应/验证未被通过,而服务器并未给用户分配会话令牌token即返回空值会话临牌。对于该不存在会话令牌token的第二网络请求,可以判断是恶意请求,即验证不通过。
进一步的,如果在第二网络请求的信息中包括会话令牌token,则:可能第一网络请求被响应,可能发送该第二网络请求的用户可能不是黑名单用户,或者,也可能该用户未通过发送第一网络请求获得合法的会话令牌token而伪造了会话令牌token,等等,因而,是否为恶意请求,可以再做其他验证,即可以进行多方位的验证、多重验证。
其中,关于伪造会话令牌token,是指该会话令牌token实际上并不是由服务器侧分配给合法用户的合法的会话令牌token。其中,合法用户,即发送了被响应的第一网络请求的用户,合法的会话令牌token是由服务器侧对第一网络请求作出响应而分配给第一网络请求的用户的。伪造的会话令牌token是非法的,其不符合合法的会话令牌token的规定,因为合法的会话令牌token的生成算法是保密的,伪造的会话令牌token的算法与合法的会话令牌的算法并不同,从而导致生成的会话令牌token不同。拥有伪造的会话令牌token的第二网络请求,也将被认定为是恶意请求。
具体而言,会话令牌token不合法可以包括会话令牌格式不正确的情况。非法的会话令牌token产生的原因包括:发送第二网络请求的用户通过其他途径获取其他用户、或该用户自身曾经使用过的会话令牌token,其已经过期、或者根据使用过的会话令牌token伪造等;或者在发送第二网络请求的用户与服务器侧在通信过程中出错;或者第二网络请求的会话令牌被恶意篡改等。
例如:假设合法的会话令牌token的标准格式为长度32位的字符串,前6位为数字,后26位为字母。若第二网络请求信息中包含的会话令牌token为:11111111000000001111111100000000,则该第二网络请求携带的会话令牌token的格式与标准格式不符,该第二网络请求携带的token不合法(非法)。对于不合法的会话令牌token,可以判定其第二网络请求为恶意请求,本次验证不通过。
在一个实施例中,为了避免发送恶意请求的用户伪造该会话令牌token,尤其是会话令牌token编码,可以在生成会话令牌token编码时,随机生成替换编码,将会话令牌token编码与该替换编码关联起来,并将相关联的会话令牌token编码与替换编码保存在会话令牌token编码对照表中。将会话令牌token中的会话令牌token编码,替换成替换编码。替换后的会话令牌token中可以包括:用户ID,业务功能编码,替换编码。将该替换后的会话令牌token返回给发送被服务器侧响应的第一网络请求的用户。
例如:生成的会话令牌token为111111aaaaaabbbbbbccccccddddddee。可以根据会话令牌token格式的设定,确定出aaaaaabbbbbbccccccddddddee是会话令牌token编码。随机生成关联于该会话令牌token编码的替换编码,如Xa23Y。将会话令牌token编码aaaaaabbbbbbccccccddddddee与替换编码Xa23Y对应着保存至会话令牌token编码对照表中,并使用替换编码Xa23Y替换会话令牌token中的会话令牌token编码aaaaaabbbbbbccccccddddddee,则得到替换后的会话令牌token为111111Xa23Y。
当某用户携带该替换后的会话令牌token发送第二网络请求时,将该替换后的会话令牌token中的替换编码,与会话令牌token编码对照表进行匹配,查看是否有该替换编码存在。若存在该替换编码,则将该替换编码替换成与该替换编码相关联的会话令牌token编码,在对包含会话令牌token编码的会话令牌token进行合法性判断。若不存在该替换编码,则判定该用户携带的替换后的会话令牌token是伪造的,可以直接确定该用户发送的第二网络请求是恶意请求,该恶意请求验证不通过。
例如:某用户携带的替换后的会话令牌token为111111Xa23Y,经分析得知Xa23Y为替换编码,在会话令牌token对照表中查找替换编码Xa23Y。若存在该替换编码Xa23Y,则将与替换编码Xa23Y相关联的会话令牌编码aaaaaabbbbbbccccccddddddee,重新更换到会话令牌token中,得到会话令牌token为111111aaaaaabbbbbbccccccddddddee,可以对该会话令牌token(111111aaaaaabbbbbbccccccddddddee),进行合法性验证,例如验证会话令牌token的格式是否正确,会话令牌token是否为空值等等。若不存在该替换编码Xa23Y,则验证不通过,可以直接拦截该用户发送的第二网络请求。
进一步,第二网络请求信息中可以包括黑名单用户标记,如black=1等。其中,该黑名单用户标记可以是用户cookie中携带的标签,如black=1。
其中,第二网络请求信息中黑名单用户标记black=1,表示发送该第二网络请求的用户可能是黑名单用户,该黑名单用户曾经向服务器侧发送过恶意请求。因而,如果第二网络请求信息中包括了该黑名单用户标记black=1,可以确定该第二网络请求为恶意请求,无论其是否携带了会话令牌token(因其携带的会话令牌token也有可能是伪造的)。如果第二网络请求信息中不包括该黑名单用户标记black=1(后面直接用black表示),则可能第一网络请求被响应,发送该第二网络请求的用户可能不是黑名单用户,等等,因而,是否为恶意请求,还需要做其他验证,即需要多次验证、多重验证。
具体而言,在第二网络请求信息中包含黑名单用户标记black,表示发送该第二网络请求的用户是黑名单用户(非正常用户),第二网络请求被认定为恶意的。由于正常用户才可以通过第一网络请求获得页面数据,那么该用户发送第二网络请求所使用的页面数据可能是通过其他途径获得的。那么该用户存在冒用其他用户身份或根据自己身份以往获得的页面数据等进行伪造会话令牌等的嫌疑,可以将该用户发送的第二网络请求当做恶意请求,判定本次验证不通过。也可以说,对于存在黑名单用户标记black的用户,服务器侧是不会响应其发送的第一网络请求的,而当该用户发送来了第二网络请求,说明其应当是从其他途径获取的页面数据涉及的业务数据。由该黑名单用户标记black就能在服务器侧的最前端如web服务器,阻挡这样的非法用户,而不让其进入到服务器侧的后端,影响服务器系统的正常工作和性能。
进一步,可以将发送恶意请求的用户添加至黑名单中,并存储于服务器中。即如果第二网络请求验证未被通过,将其认定为恶意请求,则将该用户加入黑名单中存档并给发送第二网络请求的用户添加黑名单标记。例如:表1示意性的表示出存储在服务器中的黑名单。在黑名单中可以记录黑名单信息,该信息可以包含:用户信息如用户ID、对应的给发送恶意请求的该用户添加黑名单用户标记等。被列入黑名单中的用户,可以在黑名单中记录其ID,并对应记录对该用户添加了黑名单用户标记。
若是用户通过一定方式将第二网络请求信息中的黑名单用户标记black去除,以此伪造成正常的合法的用户,但由于在第二网络请求信息中包含用户信息即有用户ID,则服务器侧还可以将该第二网络请求信息中的用户信息,与黑名单中的黑名单信息进行匹配,比如将该用户的用户ID与黑名单中的黑名单用户ID进行匹配,若在黑名单的黑名单信息中匹配出与该用户ID一样的用户ID,则也验证出该用户是黑名单用户,该用户是曾经发送恶意请求的用户,该用户是非法的、非正常的。这样,可以将虽然不包含黑名单用户标记black,但是其用户信息涉及的用户ID是包含在黑名单中的第二网络请求,判定为恶意请求,该恶意请求验证不通过。
下述将举例描述利用黑名单用户标记black=1、会话令牌token、黑名单信息匹配等,构建验证逻辑(验证机制或者验证策略)的情形。本申请中,服务器侧对接收到的第二网络请求的验证,是依据构建的第二验证逻辑进行的。
第二验证逻辑是根据第二验证内容判断第二网络请求是否为恶意请求。第二验证逻辑的第二验证内容至少包括:验证第二网络请求携带的第一验证的验证结果及会话令牌,以及当第二网络请求携带的第一验证的验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中。换言之,第二验证可以是:验证第二网络请求携带的第一验证的验证结果是否包含黑名单用户标记black,和/或验证第二网络请求携带的第一验证的验证结果包含的会话令牌token,和/或将第二网络请求包含的用户信息与黑名单信息进行匹配,等等。这里,黑名单信息存储在服务器侧的黑名单中,如表1所示。其中,被登入黑名单的用户,服务器侧会给予黑名单用户标记black,但也可能因各种原因(如蓄意删除、传送时丢失等),该黑名单用户标记black会没有添加到用户一侧。
进行验证的过程中,若发现,第二网络请求携带的第一验证的验证结果中包含黑名单用户标记black,和/或,该第二网络请求携带的第一验证的验证结果中包含的会话令牌token不合法,和/或,第二网络请求携带的第一验证的验证结果中不包含会话令牌token,和/或,第二网络请求的用户信息与预设的黑名单中黑名单信息相匹配(用户信息与黑名单信息的用户信息相匹配),则可以判断该第二网络请求为恶意请求,该第二网络请求验证不通过。
当然,若上述验证不通过的情形都不存在,则可以判断该第二网络请求为非恶意请求,即验证通过,可以对第二网络请求涉及的业务数据执行需要的处理。具体地,若第二网络请求信息中不包含黑名单用户标记black,第二网络请求信息中存在会话令牌token且会话令牌token合法,以及,发送该第二网络请求的用户其用户ID也不是记录在黑名单中的黑名单用户,则表示该第二网络请求不是恶意请求,该第二网络请求验证通过。
在一个实施例中,第二验证内容,可以不分先后顺序任选其中一个或其多个构建第二验证逻辑,以根据实际情形、实际需要合理选择和组织顺序,即能进行有效的验证,保证验证的逻辑顺序合理,都能完成验证,进而实现保障服务器侧的正常工作、保护服务器侧的安全和性能的目的。比如:黑名单用户标记black验证、会话令牌token验证、黑名单信息匹配,可以根据实际需要任选其一、其二、其三......,并根据实际需要任意组合先后顺序,来构建第二验证逻辑。验证期间,在第二验证逻辑中用到的第二验证内容,需要都验证通过,才表示第二网络请求通过了验证,任一个验证未通过,都表示第二网络请求会被判定为恶意请求。
下面,将以选择上述列举的三个第二验证内容,并按照验证是否存在黑名单用户标记black,同时验证是否匹配黑名单信息和验证会话令牌token的存在及其合法性的顺序,构建第二验证逻辑为例子,来介绍第二网络请求的验证。
对第二验证内容为黑名单用户标记black的验证:如果第二网络请求携带的第一验证的验证结果中存在黑名单用户标记black,则该第二网络请求是恶意的,验证不能通过,该用户是非法的,是黑名单用户。如果第二网络请求携带的第一验证的验证结果中不存在黑名单用户标记black,则需要看后面的第二验证内容的验证结果,来最终确定第二网络请求是否为恶意请求。验证和判断方式可以参见前述关于黑名单用户标记black来进行验证和判断的描述。
对第二验证内容为黑名单信息匹配的验证:如果第二网络请求携带的第一验证的验证结果中没有黑名单用户标记black,但其中的用户信息与服务器侧保存的黑名单中的黑名单信息相匹配,则该第二网络请求是恶意的,验证不能通过,该用户是非法的。进一步,被验证为非法的该用户,由于之前没有添加上黑名单用户标记black或者说丢失或被蓄意去除了,则可以再次进行黑名单用户标记black的添加。如果第二网络请求携带的第一验证的验证结果中没有黑名单用户标记black,且其中的用户信息与服务器侧保存的黑名单中的黑名单信息不匹配,则可能不是恶意的,还需要看其他的第二验证内容的验证结果,来最终确定第二网络请求是否为恶意请求。验证和判断方式可以参见前述关于黑名单信息匹配进行验证和判断的描述。
对第二验证内容为会话令牌token的验证:如果第二网络请求携带的第一验证的验证结果中不存在会话令牌token,那么即便没有黑名单用户标记black,第二网络请求被认为是恶意请求。如果第二网络请求携带的第一验证的验证结果中没有黑名单用户标记black,且具有存在会话令牌token,则验证该会话令牌token是否合法,比如会话令牌token的格式是否正确等。可以参见前述关于会话令牌token存在与否、合法与否的验证和判断的描述。并且,进一步的,如果该第二网络请求的第二网络请求信息中的会话令牌token不合法,和/或,该第二网络请求信息中不存在会话令牌时,将发送该第二网络请求的用户添加到黑名单中,记录其用户ID到黑名单信息中,并且,还为该用户添加黑名单用户标记black(black=1)。这样就可以在该用户再次发送第一网络请求或第二网络请求时,在服务器侧最前方,如web服务器,接收到这些网络请求并被验证,如:发现黑名单用户标记black存在于接收到的这些网络请求信息中。这样,很容易拦截这些网络请求以避免其发送的针对服务器的恶意请求,并且,都无需将这些网络请求转送到服务器侧的后方(如网页服务器、业务服务器等),防止了对服务器的正常工作、安全和性能等带来不利影响。
当然,其中,还可以在合法性判断前,插入黑名单信息匹配的验证方式,因而,即便存在会话令牌token,若其用户信息匹配上了黑名单信息,也可能会被认为其第二网络请求是恶意请求,而不再做会话令牌token的合法性判断。
当第二网络请求携带的第一验证的验证结果没有black、且携带有token、且不在黑名单中,那么验证通过,执行业务数据处理,即响应第二网络请求。否则,有任一一个不满足,则验证都不通过,为恶意请求,并可以添加黑名单用户标记black,拒绝执行业务数据处理,即拒绝对第二网络请求响应。
这里,发送第一网络请求和第二网络请求的用户,可以是相同的用户、也可以是不同的用户。也就是说,可能会发送恶意请求的用户,其发送第一网络请求和第二网络请求,可以采用相同或不同身份,即第一用户发送第一网络请求、第二用户发送第二网络请求,第一用户和第二用户可以不同,也可以相同。当发送第一网络请求和第二网络请求的用户不同时,表示发送第二网络请求的用户通过一定手段直接获得了页面数据,例如,使用其他用户获得的,在浏览器缓存中存储的页面数据。根据该页面数据直接发送第二网络请求,也即是说,不发送(跳过)第一网络请求,用已有的页面数据发送第二网络请求。
在一个实施例中,用户先发送第一网络请求,进而基于其发送的第一网络请求被响应而获得的页面数据和会话令牌,再向服务器侧发送第二网络请求,以请求服务器侧对第二网络请求涉及的业务数据进行处理。即该过程类似正常用户的请求过程。此外,用户可以记录每一次页面访问所获得的页面数据和会话令牌。因此,存在这样的情形:用户可以不发送第一网络请求,而根据先前记录的页面数据、会话令牌及用户当前的操作发送第二网络请求,来请求服务器处理用户当前操作产生的业务数据。在上述情形下的实施例中,所述第二网络请求携带的所述会话令牌是失效的。服务器侧可以通过验证所述会话令牌是否有效来判断是否拦截或响应所述第二网络请求。
在另一个实施例中,发送第二网络请求的第二用户,可以通过其他途径获得发送第一网络请求的第一用户根据第一网络请求所获得的页面数据和/或会话令牌。如:第二用户可以通过冒用第一用户的身份的方式,获得页面数据和会话令牌等。通过这种方式,第二用户可以基于其他用户获得的页面数据和/或会话令牌来发送第二网络请求。这时,发送第一网络请求和第二网络请求的用户是不相同的。
第二验证的结果可以包括第二网络请求验证通过、第二网络请求验证不通过。
<一>若第二网络请求验证通过,则针对第二网络请求进行相应业务数据处理。
这里,若第二网络请求通过验证,则表示该第二网络请求不是恶意请求,发送该第二网络请求的用户是正常用户。进一步,可以确定发送第一网络请求的用户与发送该第二网络请求的用户为相同的用户(用户ID也相同)。那么可以对该第二网络请求所请求处理的业务数据进行处理,并将处理结果返回给该用户。
例如:可以对该用户提交的评论内容进行处理,将该用户的评论内容与其他用户的评论内容一同显示在页面中,并且提示该用户“评论提交成功”,等等。
<二>若第二网络请求验证未通过,则拦截第二网络请求。
若第二网络请求未通过验证,则表示该第二网络请求是恶意请求。为了不影响服务器的正常运行,和正常用户的网络行为,可以拦截该恶意请求,并且,对于被认定为恶意请求的第二网络请求,其所请求的内容(业务数据等)不进行相应的业务数据处理,进一步的,还可以向发送该第二网络请求的用户反馈“恶意请求”、“黑名单用户”等提示,甚至可以将发送该未通过验证的第二网络请求的用户加入黑名单(如果之前不在黑名单中)、做黑名单标记等。比如,在一个实施例中,若第二网络请求验证失败,是由于会话令牌不合法,或是会话令牌为空值造成的。那么可以将发送该第二网络请求的用户添加至黑名单中。进而,当第二网络请求的第二网络请求信息中的会话令牌不合法时,和/或,当第二网络请求信息中不存在会话令牌时,还可以为发送第二网络请求的用户添加黑名单用户标记。
需要说明的是,第一验证内容,第二验证内容具有可扩展性,可以根据需要在第一验证内容和/或第二验证内容中添加验证项,例如:在第二验证内容中添加会话令牌的有效时间,若第一用户在会话令牌的有效时间以外的时间发送第二网络请求,则可以拦截该第二网络请求。
以本申请所述的方法为基础,本申请还提供了一种防止针对服务器的恶意请求的系统,如图3所示是根据本申请一实施例的防止针对服务器的恶意请求的系统的结构图。
本申请所述的系统可以包括Web服务器310,第一应用服务器320,第二应用服务器330。
其中,web服务器310可以接收来自用户的第一网络请求,该第一网络请求用于请求页面资源/页面数据等。可以对接收到的第一网络请求进行初步地恶意请求验证,转发通过验证的第一网络请求至第一应用服务器320,拦截未通过验证的第一网络请求。例如,验证该第一网络请求中的第一网络请求信息是否包含黑名单用户标记,包含黑名单用户标记的第一网络请求为恶意请求。将不含黑名单用户标记的第一网络请求转发至第一应用服务器420。将包含黑名单用户标记的第一网络请求判定为恶意请求并进行拦截,并终止对该用户本次发送的第一网络请求进行进一步地处理,以避免发送该第一网络请求的第一用户再次向系统发起恶意请求。参见图2所示例子中,对第一网络请求的响应处理的步骤S210~S220的处理过程。第一应用服务器320可以接收对web服务器310转发的来自用户的第一网络请求,并对该第一网络请求进行进一步地恶意请求验证。对于通过验证的第一网络请求,第一应用服务器320为发送该网络请求的用户分配会话令牌。对于未通过验证的第一网络请求,第一应用服务器320拦截该第一网络请求。
该第一应用服务器320可以针对转发来的第一网络请求,根据其用户上一次发送第一网络请求的时间与本次发送第一网络请求的时间判断两者之间的时间间隔是否小于一个预定的时间间隔阈值,从而判断来自该用户的两次第一网络请求的时间间隔是否过于密集(小于预定的时间间隔阈值),对于同一用户发送的过于密集的第一网络请求,可以将该用户判定为发送恶意请求的可疑用户,则该第一网络请求未通过验证,第一应用服务器320对于该用户发送的本次第一网络请求可以进行拦截。
该第一应用服务器320还可以验证该用户在一预定时间段内发送的第一网络请求的次数(包含本次发送的第一网络请求),若该次数等于该预定时间内的预设的请求次数阈值,则该第一网络请求验证不通过,第一应用服务器320可以拦截该第一网络请求,并将发送该第一网络请求的该用户加入黑名单,使该用户成为黑名单用户。以及第一应用服务器320可以为该用户生成黑名单用户标记,并经由web服务器410将该黑名单用户标记返回给该用户。
该第一应用服务器320可以将第一网络请求信息与黑名单中的黑名单信息进行匹配,若存在与第一网络请求信息相匹配的黑名单信息,则将该第一网络请求作为恶意请求进行拦截。
第一应用服务器320还可以为通过验证的第一网络请求的用户分配一个会话令牌(token),将该会话令牌经由web服务器310发送给该用户。该用户将使用该会话令牌执行获得的网页上的业务功能等等。
其中,在web服务器310以及第一应用服务器320都通过对第一网络请求的验证后,web服务器310可以从资源服务器获取到第一网络请求所请求的页面资源/页面数据等,并将该页面资源返回给第一用户,进行页面渲染,即,对第一网络请求的响应。其中,在该页面/网页中将包括可操作的各个业务功能。
当用户对页面中的业务功能进行操作时,用户可以携带被分配到的该会话令牌向web服务发送第二网络请求。该第二网络请求用于请求服务器对该用户操作产生的业务数据进行处理。
发送第二网络请求的用户可以与发送第一网络请求的用户相同,也可以不同。当二者相同时,则表示是同一个用户针对页面进行操作,可能是正常用户(合法进行请求的用户),而当二者不同时,则表示发送第二网络请求的用户通过特殊方法获得了另一用户得到的会话令牌和/或页面数据、甚至是伪造会话令牌和/或页面数据等,有发送恶意请求的嫌疑。因而,对用户发送的各个网络请求都直接进行验证(从黑名单标记、发送频率、发送时间、黑名单用户ID匹配、token等内容,分阶段验证如web服务器验证、第一应用服务器验证等),能极大程度上避免非正常的非法用户对服务器侧的恶意请求或攻击。
用户相同或不同,在网络请求中可以表现为用户的ID相同或不同。Web服务器310可以接收来自用户的第二网络请求,其中,所述第二网络请求可以包括所述会话令牌。web服务器310可以对该第二网络请求进行初步地恶意请求验证。转发通过验证的所述第二网络请求至第一应用服务器320,拦截未通过验证的第二网络请求。
例如:Web服务器310可以将包含黑名单用户标记的第二网络请求判定为恶意请求并对该第二网络请求进行拦截,终止对该第二网络请求的进一步处理。Web服务器310将不包含黑名单用户标记的第二网络请求转发给第一应用服务器320。第一应用服务器320可以接收web服务器310转发的第二网络请求,并对该第二网络请求进行进一步的恶意请求验证。若第二网络请求中包含token,那么,第一应用服务器320可以对第二网络请求中包含的token进行合法性验证,以防虚假伪造的会话令牌。例如,该合法性验证可以验证该token的格式是否正确,该token是否为空值等等,若该token格式不正确,或者token为空值,则说明该token不合法,携带该token的第二网络请求是恶意请求。
第一应用服务器320可以将第二网络请求中的第二网络请求信息与黑名单中的黑名单信息进行匹配,若第二网络请求信息涉及的用户ID与其中一个黑名单信息中的用户ID相匹配,则表示该第二网络请求为恶意请求。
第一应用服务器320可以将是非恶意请求的第二网络请求转发给第二应用服务器330。
第二应用服务器330可以接收第一应用服务器320转发的第二网络请求,并针对该第二网络请求处理与第二网络请求对应的业务数据。例如,第二网络请求用于请求页面中的一个功能(业务),例如:提交评论,则第二应用服务器330可以根据该第二网络请求处理相关的业务数据,并将处理好的业务数据通过第一应用服务器320和Web服务器310转发给用户。
第二网络请求的验证处理,参见图2所示例子中,对第二网络请求的验证步骤S230的处理过程。
在本申请所述的系统中,为了增加系统的工作效率,web服务器310、第一应用服务器320、第二应用服务器330的数量可以是一个或多个,或者服务器集群。
当Web服务器310、第一应用服务器320、第二应用服务器330的数量都是一个时,可以参照上述对系统的描述。
当Web服务器310、第一应用服务器320、第二应用服务器330的数量都是多个时,多个Web服务器310负责接收多个来自不同用户的第一网络请求和/或第二网络请求,并对第一网络请求和/或第二网络请求进行初步的恶意请求判断,如,检测黑名单用户标记,并且可以拦截恶意请求。根据业务种类的不同,如,提交评论、创建订单等。多个第一应用服务器320中的每一个可以负责一个或多个业务功能,并且针对这些业务功能的第一网络请求和/或第二网络请求进行进一步恶意请求检测并对恶意请求进行拦截。同样根据业务功能的不同,多个第二应用服务器330中的每一个可以负责一个或多个业务数据的处理。
例如:每个web服务器310对接收到的第一网络请求和/或第二网络请求进行初步的恶意请求判断,拦截恶意请求,并根据第一网络请求和/或第二网络请求所请求的业务功能的不同将非恶意请求的第一网络请求和/或第二网络请求分发给对应业务功能的第一应用服务器320。第一应用服务器320对第一网络请求和/或第二网络请求做进一步地恶意请求判断,拦截被判断为非法的恶意请求,而对判断为非恶意请求的第一网络请求的用户分配会话令牌,和/或将判断为非恶意请求的第二网络请求转发至对应功能的第二应用服务器430进行第二网络请求所请求的业务数据的处理。
其中,可以将web服务器310和第一应用服务器320中涉及对第一网络请求的恶意请求验证称作第一验证逻辑,涉及对第二网络请求的恶意请求验证称为第二验证逻辑。可以将多个web服务器310或多个第一应用服务器320涉及的恶意请求验证方法进行统一,并且多个web服务器310或多个第一应用服务器320中用于恶意请求验证的数据进行共享。例如,多个第一应用服务器320共享黑名单数据。
另外,第一应用服务器320还可以作为一个模块内嵌于web服务器310中或第二应用服务器330中。
本申请还提供了一种防止针对服务器的恶意请求的装置,如图4所示是根据本申请一实施例的防止针对服务器的恶意请求的装置400的结构图。装置400可以包括:
第一验证模块410,可以用于接收第一网络请求,并对第一网络请求进行第一验证;该第一验证模块410的功能具体可以参见步骤S210。
返回模块420,可以用于将第一验证的验证结果及基于第一网络请求生成的会话令牌返回至发送第一网络请求的用户端的cookie中;第一验证的验证结果用于标识发送第一网络请求的用户端是否通过验证;会话令牌用于标识用户对基于第一网络请求获取的页面数据进行操作的权限。该返回模块420的功能具体可以参见步骤S220。
第二验证模块430,可以用于接收第二网络请求,对接收到的第二网络请求进行第二验证;其中,第一网络请求为页面数据请求,第二网络请求为用户基于第一网络请求获取的页面数据进行操作而发出的数据处理请求;第二网络请求携带第一验证的验证结果及会话令牌;第二验证包括:验证第二网络请求携带的第一验证的验证结果及会话令牌,以及当第二网络请求携带的第一验证的验证结果及会话令牌通过验证时,验证发送第二网络请求的用户信息是否在预设的黑名单中。若第二网络请求验证通过,则针对第二网络请求进行相应业务数据处理。若第一网络请求验证未通过,则拦截第一网络请求。若第二网络请求验证未通过,则拦截第二网络请求。
该第二验证模块430的功能具体可以参见步骤S230。
由于图4所描述的本申请的装置所包括的各个模块及单元的具体实施方式与本申请的方法中的步骤的具体实施方式是相对应的,由于已经对图2-图3进行了详细的描述,所以为了不模糊本申请,在此不再对各个模块的具体细节进行描述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种防止针对服务器的恶意请求的方法,其特征在于,包括:
服务器接收第一网络请求,并对所述第一网络请求进行第一验证;
所述服务器将所述第一验证的验证结果及基于所述第一网络请求生成的会话令牌返回至发送所述第一网络请求的用户端的cookie中;所述第一验证的验证结果用于标识发送所述第一网络请求的用户端是否通过验证;所述会话令牌用于标识用户对基于所述第一网络请求获取的页面数据进行操作的权限;
所述服务器接收第二网络请求,对接收到的所述第二网络请求进行第二验证;其中,所述第一网络请求为页面数据请求,所述第二网络请求为用户基于所述第一网络请求获取的页面数据进行操作而发出的数据处理请求;所述第二网络请求携带所述第一验证的验证结果及所述会话令牌;
所述第二验证包括:验证所述第二网络请求携带的所述第一验证的验证结果及所述会话令牌,以及当所述第二网络请求携带的所述第一验证的验证结果及所述会话令牌通过验证时,验证发送所述第二网络请求的用户信息是否在预设的黑名单中;
若所述第二网络请求验证通过,则所述服务器针对所述第二网络请求进行相应业务数据处理;
若所述第二网络请求验证未通过,则所述服务器拦截所述第二网络请求。
2.根据权利要求1所述的方法,其特征在于,所述第二网络请求验证未通过,包括:
所述第二网络请求携带的所述第一验证的验证结果中包括黑名单用户标记,和/或所述第二网络请求携带的所述会话令牌不合法,或所述第二网络请求不存在会话令牌,和/或所述第二网络请求的用户信息与预设的黑名单中的黑名单信息相匹配。
3.根据权利要求2所述的方法,其特征在于,所述第二网络请求验证未通过,还包括:
当所述第二网络请求携带的所述会话令牌不合法时,或,当所述第二网络请求不存在会话令牌时,将所述第二验证的验证结果返回至发送所述第二网络请求的用户端的cookie中,以根据所述第二验证的验证结果,为发送所述第二网络请求的用户添加黑名单用户标记。
4.根据权利要求1所述的方法,其特征在于,对所述第一网络请求进行第一验证,至少包括:
验证所述第一网络请求是否包含黑名单用户标记;和/或;
验证发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,是否大于预设的时间间隔阈值;和/或,
验证发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,是否等于预设的请求次数阈值;和/或,
将所述第一网络请求中包含的用户信息与所述预设的黑名单中的黑名单信息进行匹配。
5.根据权利要求4所述的方法,其特征在于,所述第一网络请求验证未通过,包括:
所述第一网络请求中包含黑名单用户标记;和/或
发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,小于或等于预设的时间间隔阈值;和/或
发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,等于预设的请求次数阈值;和/或
所述第一网络请求中包含的用户信息与预设的黑名单中的黑名单信息相匹配。
6.根据权利要求5所述的方法,其特征在于,还包括:
当发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值时,和/或当发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数等于预设的请求次数阈值时,根据所述第一验证的验证结果,为发送所述第一网络请求的用户添加黑名单用户标记。
7.一种防止针对服务器的恶意请求的系统,其特征在于,包括:web服务器,第一应用服务器,第二应用服务器;其中,
所述web服务器接收网络请求,并对所述网络请求进行初步地恶意请求验证,转发通过验证的所述网络请求至第一应用服务器,拦截未通过验证的所述网络请求;
所述第一应用服务器接收所述web服务器转发的所述网络请求,并对所述网络请求进行进一步的恶意请求验证,为发送通过验证的所述网络请求的用户分配合法的会话令牌或转发所述网络请求到第二应用服务器,为发送未通过验证被拦截的所述网络请求的用户添加黑名单用户标记和/或拒绝执行业务数据处理;
所述第二应用服务器接收所述第一应用服务器转发来的所述网络请求,并针对所述网络请求进行相应的业务数据处理。
8.根据权利要求7所述的系统,其特征在于:所述网络请求包括第一网络请求或第二网络请求,其中,
所述第一网络请求为页面访问请求,所述第二网络请求为用户基于所述第一网络请求获取的页面数据进行操作而发出的数据处理请求;
所述web服务器对所述网络请求进行初步地恶意请求验证包括:
验证所述第一网络请求的第一网络请求信息或所述第二网络请求的第二网络请求信息是否包含黑名单用户标记,若包含黑名单用户标记,则验证不通过;
所述第一应用服务器对所述网络请求进行进一步的恶意请求验证包括:
若所述网络请求包括所述第一网络请求,验证发送所述第一网络请求的用户上一次发送第一网络请求的时间与本次发送第一网络请求的时间是否小于预定的时间间隔阈值,和/或发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数是否等于预设的请求次数阈值,和/或所述第一网络请求的用户的信息是否存在相匹配的黑名单信息,若是,则验证不通过;
若所述网络请求包括所述第二网络请求,验证发送所述第二网络请求的会话令牌是否合法,和/或所述第二网络请求信息是否存在相匹配的黑名单信息,若是,则验证不通过。
9.一种防止针对服务器的恶意请求的装置,其特征在于,包括:
第一验证模块,用于控制服务器接收第一网络请求,并对所述第一网络请求进行第一验证;
返回模块,用于控制所述服务器将所述第一验证的验证结果及基于所述第一网络请求生成的会话令牌返回至发送所述第一网络请求的用户端的cookie中;所述第一验证的验证结果用于标识发送所述第一网络请求的用户端是否通过验证;所述会话令牌用于标识用户对基于所述第一网络请求获取的页面数据进行操作的权限;
第二验证模块,用于控制所述服务器接收第二网络请求,对接收到的所述第二网络请求进行第二验证;其中,所述第一网络请求为页面数据请求,所述第二网络请求为用户基于所述第一网络请求获取的页面数据进行操作而发出的数据处理请求;所述第二网络请求携带所述第一验证的验证结果及所述会话令牌;所述第二验证包括:验证所述第二网络请求携带的所述第一验证的验证结果及所述会话令牌,以及当所述第二网络请求携带的所述第一验证的验证结果及所述会话令牌通过验证时,验证发送所述第二网络请求的用户信息是否在预设的黑名单中;其中,若所述第二网络请求验证通过,则所述服务器针对所述第二网络请求进行相应业务数据处理;若所述第二网络请求验证未通过,则所述服务器拦截所述第二网络请求。
10.根据权利要求9所述的装置,其特征在于,所述第二验证模块中,第二网络请求验证未通过,至少包括:
所述第二网络请求携带的所述第一验证的验证结果中包括黑名单用户标记,和/或所述第二网络请求携带的所述会话令牌不合法,或所述第二网络请求不存在会话令牌,和/或所述第二网络请求的用户信息与预设的黑名单中的黑名单信息相匹配;
当所述第二网络请求携带的所述会话令牌不合法时,或,当所述第二网络请求不存在会话令牌时,将所述第二验证的验证结果返回至发送所述第二网络请求的用户端的cookie中,以根据所述第二验证的验证结果,为发送所述第二网络请求的用户添加黑名单用户标记。
11.根据权利要求9所述的装置,其特征在于,所述第一验证模块中,对所述第一网络请求进行第一验证,至少包括:
验证所述第一网络请求是否包含的黑名单用户标记;和/或;验证发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,是否大于预设的时间间隔阈值;和/或,验证发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,是否等于预设的请求次数阈值;和/或,将所述第一网络请求中包含的用户信息与所述预设的黑名单中的黑名单信息进行匹配。
12.根据权利要求11所述的装置,其特征在于,第一验证模块中,对所述第一网络请求进行第一验证的验证结果包括:所述第一网络请求验证未通过;
其中,所述第一网络请求验证未通过,至少包括:所述第一网络请求中包含黑名单用户标记;和/或发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔,小于或等于预设的时间间隔阈值;和/或发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数,等于预设的请求次数阈值;和/或所述第一网络请求中包含的用户信息与预设的黑名单中的黑名单信息相匹配;
所述第一验证模块,还用于当发送所述第一网络请求的用户上一次发送第一网络请求与本次发送第一网络请求的时间间隔小于或等于预设的时间间隔阈值时,和/或当发送所述第一网络请求的用户在预定时间段内发送第一网络请求的次数等于预设的请求次数阈值时,根据所述第一验证的验证结果,为发送所述第一网络请求的用户添加黑名单用户标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310455061.2A CN104519018B (zh) | 2013-09-29 | 2013-09-29 | 一种防止针对服务器的恶意请求的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310455061.2A CN104519018B (zh) | 2013-09-29 | 2013-09-29 | 一种防止针对服务器的恶意请求的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104519018A CN104519018A (zh) | 2015-04-15 |
CN104519018B true CN104519018B (zh) | 2018-09-18 |
Family
ID=52793759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310455061.2A Active CN104519018B (zh) | 2013-09-29 | 2013-09-29 | 一种防止针对服务器的恶意请求的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104519018B (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184149B (zh) * | 2015-08-11 | 2018-07-06 | 广东欧珀移动通信有限公司 | 一种防止恶意程序频繁获取用户位置信息的方法及系统 |
CN105160572A (zh) * | 2015-09-30 | 2015-12-16 | 努比亚技术有限公司 | 控制订单生成的装置、方法及秒杀系统 |
CN105915497A (zh) * | 2015-12-14 | 2016-08-31 | 乐视网信息技术(北京)股份有限公司 | 针对用户跳转登录的处理方法及系统 |
CN105763560A (zh) * | 2016-04-15 | 2016-07-13 | 北京思特奇信息技术股份有限公司 | 一种Web Service接口流量实时监控方法和系统 |
CN106101059B (zh) * | 2016-05-23 | 2019-05-17 | 微梦创科网络科技(中国)有限公司 | 一种网页请求处理方法及装置 |
CN106302481A (zh) * | 2016-08-19 | 2017-01-04 | 中国银联股份有限公司 | 检测WebSocket跨站请求伪造漏洞的方法和装置 |
CN106453266A (zh) * | 2016-09-20 | 2017-02-22 | 微梦创科网络科技(中国)有限公司 | 一种异常网络请求检测方法与装置 |
CN106506524B (zh) * | 2016-11-30 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 用于验证用户的方法和装置 |
CN108011805A (zh) * | 2016-12-29 | 2018-05-08 | 北京车和家信息技术有限责任公司 | 消息过滤的方法、装置、中间服务器及车联网系统 |
CN106850592B (zh) * | 2017-01-13 | 2018-11-16 | 咪咕视讯科技有限公司 | 一种信息处理方法、服务器及终端 |
CN108400955B (zh) * | 2017-02-06 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 一种网络攻击的防护方法及系统 |
CN107360132B (zh) * | 2017-06-02 | 2021-03-09 | 台州市吉吉知识产权运营有限公司 | 一种防止会话重演的方法及系统 |
CN107426181B (zh) * | 2017-06-20 | 2019-09-17 | 竞技世界(北京)网络技术有限公司 | 恶意Web访问请求的拦截方法及装置 |
CN107196811A (zh) * | 2017-07-13 | 2017-09-22 | 上海幻电信息科技有限公司 | 视频网站防盗链控制系统与方法 |
CN109391600B (zh) * | 2017-08-10 | 2021-08-13 | 东软集团股份有限公司 | 分布式拒绝服务攻击防护方法、装置、系统、介质及设备 |
CN107517252A (zh) * | 2017-08-22 | 2017-12-26 | 福建中金在线信息科技有限公司 | 一种文件下载控制方法、装置及系统 |
CN107634942B (zh) * | 2017-09-08 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 识别恶意请求的方法和装置 |
CN107465693B (zh) * | 2017-09-18 | 2020-06-16 | 北京星选科技有限公司 | 请求消息处理方法和装置 |
CN107704761B (zh) * | 2017-09-27 | 2020-09-01 | 北京星选科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN108111501B (zh) * | 2017-12-15 | 2021-08-20 | 百度在线网络技术(北京)有限公司 | 作弊流量的控制方法、装置和计算机设备 |
CN110099031A (zh) * | 2018-01-30 | 2019-08-06 | 普天信息技术有限公司 | 一种服务调用方法、装置及微服务平台 |
CN108390878B (zh) * | 2018-02-26 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 用于验证网络请求安全性的方法、装置 |
CN108462713B (zh) * | 2018-03-22 | 2021-07-02 | 北京可信华泰信息技术有限公司 | 一种客户端进行可信验证的方法和系统 |
CN108830099A (zh) * | 2018-05-04 | 2018-11-16 | 平安科技(深圳)有限公司 | 调用api接口的验证方法、装置、计算机设备和存储介质 |
CN109040024A (zh) * | 2018-07-06 | 2018-12-18 | 广东微云科技股份有限公司 | 一种资源访问权限控制方法及系统 |
CN108471432B (zh) * | 2018-07-11 | 2020-09-11 | 北京智芯微电子科技有限公司 | 防止网络应用程序接口被恶意攻击的方法 |
CN108900555A (zh) * | 2018-08-22 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN109361685B (zh) * | 2018-11-15 | 2021-04-20 | 北京农信互联科技集团有限公司 | 一种防止恶意请求的方法 |
CN109857484B (zh) * | 2019-01-17 | 2022-07-22 | 北京城市网邻信息技术有限公司 | 针对接口调用请求的处理方法及系统 |
CN110232265B (zh) * | 2019-06-21 | 2021-07-13 | 杭州安恒信息技术股份有限公司 | 双重身份认证方法、装置及系统 |
CN110278271B (zh) * | 2019-06-24 | 2022-04-12 | 厦门美图之家科技有限公司 | 网络请求控制方法、装置及终端设备 |
US11451396B2 (en) | 2019-11-05 | 2022-09-20 | Microsoft Technology Licensing, Llc | False positive reduction in electronic token forgery detection |
CN110933068B (zh) * | 2019-11-26 | 2022-03-01 | 秒针信息技术有限公司 | 黑白名单实时优化方法、装置、服务器及存储介质 |
CN113806131B (zh) * | 2021-09-23 | 2024-09-10 | 深圳市元征软件开发有限公司 | 故障码库的访问控制方法、装置、电子设备及存储介质 |
CN114297617A (zh) * | 2021-12-25 | 2022-04-08 | 深圳市元征软件开发有限公司 | 密码访问控制方法、装置、服务器及存储介质 |
CN114513350B (zh) * | 2022-02-08 | 2024-07-02 | 中国农业银行股份有限公司 | 身份校验方法、系统和存储介质 |
CN116015854B (zh) * | 2022-12-26 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 凭据泄露的应急处理方法和装置 |
CN116720824B (zh) * | 2023-05-30 | 2024-02-13 | 南京邮电大学 | 一种基于区块链的电子证照库管理系统及方法 |
CN118590318A (zh) * | 2024-08-05 | 2024-09-03 | 苏州大学 | 一种动态重定向的网络攻击黑名单管理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729514A (zh) * | 2008-10-23 | 2010-06-09 | 华为技术有限公司 | 一种业务调用的实现方法及装置和系统 |
CN103248472A (zh) * | 2013-04-16 | 2013-08-14 | 华为技术有限公司 | 一种处理操作请求的方法、系统以及攻击识别装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533821B2 (en) * | 2007-05-25 | 2013-09-10 | International Business Machines Corporation | Detecting and defending against man-in-the-middle attacks |
-
2013
- 2013-09-29 CN CN201310455061.2A patent/CN104519018B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729514A (zh) * | 2008-10-23 | 2010-06-09 | 华为技术有限公司 | 一种业务调用的实现方法及装置和系统 |
CN103248472A (zh) * | 2013-04-16 | 2013-08-14 | 华为技术有限公司 | 一种处理操作请求的方法、系统以及攻击识别装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104519018A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104519018B (zh) | 一种防止针对服务器的恶意请求的方法、装置和系统 | |
US11729186B2 (en) | Blockchain architecture for computer security applications | |
US10243904B1 (en) | Determining authenticity of reported user action in cybersecurity risk assessment | |
US9954841B2 (en) | Distinguish valid users from bots, OCRs and third party solvers when presenting CAPTCHA | |
US11165579B2 (en) | Decentralized data authentication | |
US9800594B2 (en) | Method and system for detecting unauthorized access attack | |
CN105939326B (zh) | 处理报文的方法及装置 | |
CN109067813B (zh) | 网络漏洞检测方法、装置、存储介质和计算机设备 | |
US20100154055A1 (en) | Prefix Domain Matching for Anti-Phishing Pattern Matching | |
CN103139138B (zh) | 一种基于客户端检测的应用层拒绝服务防护方法及系统 | |
CN102571846A (zh) | 一种转发http请求的方法及装置 | |
CN105635126A (zh) | 恶意网址访问防护方法、客户端、安全服务器及系统 | |
US9210184B2 (en) | Determining the vulnerability of computer software applications to attacks | |
CN107733883B (zh) | 一种检测批量注册账号的方法及装置 | |
CN108259619A (zh) | 网络请求防护方法及网络通信系统 | |
CN106209907B (zh) | 一种检测恶意攻击的方法及装置 | |
WO2018112878A1 (zh) | 一种基于令牌机制的检测和防御cc攻击的系统和方法 | |
CN109660552A (zh) | 一种将地址跳变和WAF技术相结合的Web防御方法 | |
CN107454041B (zh) | 防止服务器被攻击的方法及装置 | |
US10474810B2 (en) | Controlling access to web resources | |
CN117155716B (zh) | 访问校验方法和装置、存储介质及电子设备 | |
CN109413022B (zh) | 一种基于用户行为检测http flood攻击的方法和装置 | |
CN107770183B (zh) | 一种数据传输方法与装置 | |
CN107294994B (zh) | 一种基于云平台的csrf防护方法和系统 | |
JP6842951B2 (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 |