本发明涉及网络通信技术领域,特别是涉及一种防止恶意提交网页请求的方法及装置。
背景技术:
随着网络信息技术的高速发展,网络信息数据时刻都在爆炸性地增长。通常,在打开一个网站的网页后,用户主机会向该网站提交请求的数据,从而进行数据传输。但是,一些用户出于作弊、破坏的目的,会在不同时间内恶意频繁提交大量请求,造成对应时间段内网站服务器负载瞬间增大。
技术实现要素:
本发明实施例的目的在于提供一种防止恶意提交网页请求的方法及装置,可以防止用户恶意向网站频繁提交大量请求的问题。具体技术方案如下:
本发明实施例提供了一种防止恶意网页请求的方法,包括:
获取网页请求,记录所述网页请求的提交总数及每次提交的时间;
根据所述网页请求的提交总数及每次提交的时间,确定网页请求的总提交时间段;
确定网页请求在所述总提交时间段内的多个第一预设时间段内分别对应的提交频率;
根据所述多个第一预设时间段内分别对应的提交频率,判断所述网页请求是否为恶意请求;
将确定为恶意请求的网页请求对应的用户信息存储至黑名单库中;
禁止所述黑名单库中的用户在第二预设时间段内提交网页请求。
优选地,所述根据所述网页请求的提交总数及每次提交的时间,确定网页请求的总提交时间段,包括:
通过所述网页请求的提交总数及每次提交的时间,确定所述网页请求的首次提交时间和第N次提交时间,其中,所述N为大于或等于3的整数;
通过所述首次提交时间和所述第N次提交时间,生成总提交时间段。
优选地,所述第N次提交时间对应为末次提交时间。
优选地,所述确定网页请求在所述总提交时间段内的多个第一预设时间段内分别对应的提交频率,包括:
确定所述总提交时间段内多个第一预设时间段对应的多个网页请求提交量;
根据所述多个网页请求提交量,计算所述网页请求在多个第一预设时间段内的对应的多个提交频率。
优选地,所述根据所述多个第一预设时间段内分别对应的提交频率,判断所述网页请求是否为恶意请求,包括:
将所述多个提交频率与预设阈值进行比较;
如果所述多个提交频率中的至少一个提交频率高于所述预设阈值,判定所述网页请求为恶意请求。
优选地,所述将确定为恶意请求的网页请求对应的用户信息存储至黑名单库中,包括:
如果判定所述网页请求为恶意请求,获取所述恶意请求的用户名和用户IP地址;
将所述用户名和用户IP地址存储至MemCache系统的黑名单库中。
优选地,所述确定网页请求在所述总提交时间段内的多个第一预设时间段内分别对应的提交频率之前,所述防止恶意提交网页请求的方法还包括:
根据预设的白名单库中的用户,允许所述白名单库中的用户提交的网页请求。
优选地,所述禁止所述黑名单库中的用户在第二预设时间段内提交网页请求之后,所述防止恶意提交网页请求的方法包括:
将确定为恶意请求的多个网页请求,分别存储至哈希规则分布的文件夹中。
本发明实施例还提供了一种防止恶意网页请求的装置,包括:
获取模块,用于获取网页请求,记录所述网页请求的提交总数及每次提交的时间;
第一确定模块,用于根据所述网页请求的提交总数及每次提交的时间,确定网页请求的总提交时间段;
第二确定模块,用于确定网页请求在所述总提交时间段内的多个第一预设时间段内分别对应的提交频率;
判断模块,用于根据所述多个第一预设时间段内分别对应的提交频率,判断所述网页请求是否为恶意请求;
第一存储模块,用于将确定为恶意请求的网页请求对应的用户信息存储至黑名单库中;
第一执行模块,用于禁止所述黑名单库中的用户在第二预设时间段内提交网页请求。
优选地,所述第一确定模块,进一步包括:
第一确定子模块,用于通过所述网页请求的提交总数及每次提交的时间,确定所述网页请求的首次提交时间和第N次提交时间,其中,所述N为大于或等于3的整数;
生成子模块,用于通过所述首次提交时间和所述第N次提交时间,生成总提交时间段。
本发明实施例提供的防止恶意提交网页请求的方法及装置,通过判断用户提交的网页请求是否为恶意请求,并禁止提交恶意请求的用户在预设第二时间段内再次请求,能够有效防止用户恶意向网站频繁提交大量请求,避免因恶意请求造成网站服务器负载瞬间增大。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例一提供的防止恶意提交网页请求的方法的一种流程图;
图2为本发明方法实施例二提供的防止恶意提交网页请求的方法的另一种流程图;
图3为本发明装置实施例一提供的防止恶意提交网页请求的装置的一种结构示意图;
图4为本发明装置实施例二提供的防止恶意提交网页请求的装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一
本发明实施例公开了一种防止恶意提交网页请求的方法,参考图1,图1为本发明方法实施例一提供的防止恶意提交网页请求的方法的一种流程图,包括:
S101、获取网页请求,记录网页请求的提交总数及每次提交的时间。
网页请求,是用户利用计算机(客户端)向服务器提交的请求消息,一般的,包括消息首行中,对资源的请求方法、资源的标识符及使用的协议。
本发明方法实施例一中,系统会记录每个用户每次提交网页请求的时间以及每个用户提交网页请求的总次数。可选的,将网页请求的提交总数及每次提交的时间记录在MemCache缓存系统中,从而保证高存储效率。MemCache是一套分布式的高速缓存系统,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。
S102、根据网页请求的提交总数及每次提交的时间,确定网页请求的总提交时间段。
系统保存并记录了某个用户网页请求的提交总数及每次提交的时间,这样,就可以确定用户提交的首次和末次网页请求的时间区间,即网页请求的总提交时间段。
可选的,通过确定网页请求的首次提交时间和第N次提交时间,也可以生成一个总提交时间段,其中,N为大于或等于3的整数。这里所指的总提交时间段可以包含两种情形:1、N等于网页请求提交总次数;2、N大于或等于3,且小于网页请求提交总次数。当N等于网页请求提交总次数时,第N次提交时间对应于末次提交时间;N大于或等于3,且小于网页请求提交总次数时,第N次提交时间对应于大于等于3的任意一次提交时间。
在第二种情形下,通过首次提交时间和第N次提交时间确定的总提交时间段,长度比所有网页请求的总提交时间段短,在一些实际案例中,通过这种方法确定的总提交时间段能够提高确定用户行为是否为恶意行为的准确度。例如,某一用户在10分钟内提交了486次网页请求,但是,前3分钟提交540次,后7分钟提交6次。如果以10分钟为总提交时间段计算,用户提交频率为0.91次/秒;如果以3分钟为总提交时间段计算,用户提交频率为3次/秒,计算结果相3倍以上!如果服务器能承受的网页提交频率为1次/秒,显然通过第二种情况确定的总提交时间段更有参考意义。
S103、确定网页请求在总提交时间段内的多个第一预设时间段内分别对应的提交频率。
总提交时间段包含有多个第一预设时间段,本发明实施例中,第一预设时间段可以由技术人员根据服务器工作情况设置。例如,总提交时间段为10分钟,当第一预设时间段为1分钟时,就会有10个第一预设时间段;当第一预设时间段为2分钟时,就会有5个第一预设时间段。根据每个第一预设时间段内的提交次数,就可以计算相应第一设时间段的提交频率。
可选的,计算相应第一设时间段的提交频率可以通过:
确定总提交时间段内多个第一预设时间段对应的多个网页请求提交量,然后根据多个网页请求提交量,计算网页请求在多个第一预设时间段内的对应的多个提交频率。
S104、根据多个第一预设时间段内分别对应的提交频率,判断网页请求是否为恶意请求。
由于用户的请求提交频率不可能一成不变,因此,多个第一预设时间段分别对应了不同的提交频率。这些不同的提交频率中,有的可能很高,有的可能很低,系统通过判断这些提交频率的高低,从而判断网页请求是否为恶意请求。
可选的,判断网页请求是否为恶意请求,通过:
将多个提交频率与预设阈值进行比较,如果多个提交频率中的至少一个提交频率高于预设阈值,判定网页请求为恶意请求。
预设阈值是技术人员根据服务器运行参数设置的,例如,服务器实际能承受的网页提交频率为1次/秒,超过这个频率就会因负载过大运行缓慢。那么,技术员可以将预设阈值设置为1次/秒,以保证服务器正常运行。可选的,在多个提交频率中,如果有一个提交频率高于预设阈值,即判定网页请求为恶意请求,这是最严格的判断规则。当然,也可以设置为只要有2个提交频率高于预设阈值,即判定网页请求为恶意请求,依次类推。
S105、将确定为恶意请求的网页请求对应的用户信息存储至黑名单库中。
确定了网页请求为恶意请求后,就需要查找对应的用户,并将该用户的用户信息存储至黑名单库,以防止该用户再次提交恶意请求。一般地,用户信息包含用户的用户名,IP地址,地理位置,头像信息等信息。
可选的,将获取恶意请求的用户名和用户IP地址,然后将用户名和用户IP地址存储至MemCache系统的黑名单库中,就可以有效防止该用户再次恶意提交。
S106、禁止黑名单库中的用户在第二预设时间段内提交网页请求。
一旦某一用户再次提交网页请求,系统通过该用户的用户名或者IP地址,查找黑名单库中是否有对应的用户,如果有,就可以禁止其再第二预设时间段内再次提交网页请求,甚至禁止访问网站。第二预设时间段可以灵活设定,例如禁止黑名单用户在1小时内提交网页请求。
本发明方法实施例一公开的防止恶意提交网页请求的方法,通过判断用户提交的网页请求是否为恶意请求,并禁止提交恶意请求的用户在预设第二时间段内再次请求,能够有效防止用户恶意向网站频繁提交大量请求,避免因恶意请求造成网站服务器负载瞬间增大。
方法实施例二
本发明实施例还公开了一种防止恶意提交网页请求的方法,参考图2,图2为本发明方法实施例二提供的防止恶意提交网页请求的方法的另一种流程图,在方法实施例一的基础上还包括:
S107、根据预设的白名单库中的用户,允许白名单库中的用户提交的网页请求。
对应一些大客户或者老用户,不需要判断他们提交的网页请求是否为恶意请求,因此可以将这些用户添加至白名单库中。这样不但能减少系统的计算量,还能提高网站的运行效率。
S108、将确定为恶意请求的多个网页请求,分别存储至哈希规则分布的文件夹中。
存储网页请求时,系统可以利用哈希规则将网页请求分别存储至不同的文件夹。这样,当系统再次读取这些网页请求时可以具有更快的读取速度。
本发明方法实施例二公开的防止恶意提交网页请求的方法,通过允许白名单库中的用户提交的网页请求,能减少系统的计算量,还能提高网站的运行效率;并且,通过将网页请求分别存储至哈希规则分布的文件夹中,当系统再次读取这些网页请求时可以具有更快的读取速度。
装置实施例一
本发明实施例公开了一种防止恶意提交网页请求的装置,参考图3,图3为本发明装置实施例一提供的防止恶意提交网页请求的装置的一种结构示意图,包括:
获取模块201,用于获取网页请求,记录网页请求的提交总数及每次提交的时间。
第一确定模块202,用于根据网页请求的提交总数及每次提交的时间,确定网页请求的总提交时间段。
第二确定模块203,用于确定网页请求在总提交时间段内的多个第一预设时间段内分别对应的提交频率。
判断模块204,用于根据多个第一预设时间段内分别对应的提交频率,判断网页请求是否为恶意请求。
第一存储模块205,用于将确定为恶意请求的网页请求对应的用户信息存储至黑名单库中。
第一执行模块206,用于禁止黑名单库中的用户在第二预设时间段内提交网页请求。
其中,第一确定模块202,进一步包括:
第一确定子模块,用于通过网页请求的提交总数及每次提交的时间,确定网页请求的首次提交时间和第N次提交时间,其中,N为大于或等于3的整数。
生成子模块,用于通过首次提交时间和第N次提交时间,生成总提交时间段。
第二确定模块203,进一步包括:
第二确定子模块,用于确定总提交时间段内多个第一预设时间段对应的多个网页请求提交量。
计算子模块,用于根据多个网页请求提交量,计算网页请求在多个第一预设时间段内的对应的多个提交频率。
判断模块204,进一步包括:
比较子模块,用于将多个提交频率与预设阈值进行比较。
判定子模块,用于如果多个提交频率中的至少一个提交频率高于预设阈值,判定网页请求为恶意请求。
第一存储模块205,进一步包括:
获取子模块,用于如果判定网页请求为恶意请求,获取恶意请求的用户名和用户IP地址。
存储子模块,用于将用户名和用户IP地址存储至MemCache系统的黑名单库中。
本发明装置实施例一公开的防止恶意提交网页请求的装置,通过判断用户提交的网页请求是否为恶意请求,并禁止提交恶意请求的用户在预设第二时间段内再次请求,能够有效防止用户恶意向网站频繁提交大量请求,避免因恶意请求造成网站服务器负载瞬间增大。
需要说明的是,本发明实施例的装置是应用上述防止恶意提交网页请求方法的装置,则上述防止恶意提交网页请求方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
装置实施例二
本发明实施例还公开了一种防止恶意提交网页请求的装置,参考图4,图4为本发明装置实施例二提供的防止恶意提交网页请求的装置的另一种结构示意图,在装置实施例一的基础上还包括:
第二执行模块207,用于根据预设的白名单库中的用户,允许白名单库中的用户提交的网页请求。
第二存储模块208,用于将确定为恶意请求的多个网页请求,分别存储至哈希规则分布的文件夹中。
本发明装置实施例二公开的防止恶意提交网页请求的装置,通过第二执行模块,能减少系统的计算量,还能提高网站的运行效率;并且,通过第二存储模块,当系统再次读取这些网页请求时可以具有更快的读取速度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。