一种网络请求事件筛选方法及装置与流程

文档序号:11995382阅读:144来源:国知局
一种网络请求事件筛选方法及装置与流程
本发明涉及互联网技术领域,尤其涉及一种以网络请求事件为对象的请求事件筛选方法及装置。

背景技术:
现有网络请求事件筛选算法中通常采用固定概率算法,该方法设定固定的筛选率,按照这个概率决定被选中请求事件数量。譬如,某天需要筛选出24个请求事件,预计有24万个请求事件,则将筛选率设置为万分之一。如果当天只有1000个请求事件,可能当天一个请求事件都无法被筛选出来;如果当天有240万个请求事件,则可能所有请求事件在2个小时内就被筛选出来了。优化过的请求事件筛选程序会动态计算这个筛选率或做其他限制,尤其是请求事件被筛选出来的数量有限的情况下,譬如根据当前时间前面一段时间请求事件数来计算后续时间的请求事件数,从而计算当前的筛选率。譬如,一天要筛选出24个请求事件,每个小时筛选出1个,第一小时有100个请求筛选出第一个请求事件,程序计算第二小时的筛选率是百分之一,结果第二小时有1万个请求事件,将导致第二小时的头几分钟就把要筛选出来的所有请求事件都筛选出来了,这样就可能导致某些恶意用户利用这个缺陷,在每小时开始的一段时间重复高频率发送请求事件以占有多个被选中的机会,从而导致请求事件筛选可控性差,抗干扰性低的情况。上面提到的固定概率算法和改进后的动态概率算法,不能够很好的解决请求量变化的情况下筛选率随之变化的难题,因为根据当前时间之前一段时间的状况进行计算的筛选率只是一个估算,可能之前的时间请求量很高随后又很低,这样可能导致后面一段时间被选中的请求事件很少;也可能之前的时间请求量很低随后又很高,这样可能导致后面一段时间被选中的请求事件很多。尤其是对于动态概率算法来说,经常会面临恶意用户采用重复或并发方式进行恶意攻击的情况。一些优化过的算法可能对请求者的IP地址和用户账号进行恶意检测,但是对于采用分布式方式从不同主机并发发起请求事件的恶意请求行为仍然无法得到很好的解决。

技术实现要素:
有鉴于此,本发明的主要目的在于提供一种网络请求事件筛选方法及装置,用于解决现有网络请求事件筛选过程可控性差,抗干扰度低,无法防止并发恶意请求行为的技术问题。为达到上述目的,本发明的技术方案是这样实现的:基于本发明实施例的一方面,提供一种网络请求事件筛选方法,该方法包括:在请求事件筛选时间范围内,通过随机算法确定一个或多个请求事件筛选时间点;接收到请求事件后,将接收到请求事件的时间点与当前请求事件筛选时间点进行比较,依据在当前请求事件筛选时间区间内接收到请求事件的时间顺序确定被选中的请求事件;所述请求事件筛选时间区间指大于等于当前请求事件筛选时间点小于下一请求事件筛选时间点之间的时间区间,若当前请求事件筛选时间点为最后一个请求事件筛选时间点,则所述请求事件筛选时间区间指大于等于最后一个请求事件筛选时间点小于所述请求事件筛选时间范围的结束时间点之间的时间区间。进一步地,所述依据在当前请求事件筛选时间区间内接收到请求事件的时间顺序确定被选中的请求事件的步骤具体为:在一个请求事件筛选时间点对应一个被选中请求事件的情况下,将在当前请求事件筛选时间区间内接收到的第一个请求事件确定为被选中的请求事件;在一个请求事件筛选时间点对应多个被选中请求事件的情况下,将在当前请求事件筛选时间区间内最先接收到的对应个数的请求事件确定为被选中请求事件。进一步地,将所述请求事件筛选时间范围分为多个时间段,在每个时间段内通过随机算法确定一个或多个请求事件筛选时间点。进一步地,在将所述请求事件筛选时间范围分为多个时间段后,还包括:依据用户在线曲线为每个时间段分配权值;依据所述权值确定在每个时间段内的被选中请求事件的数量;所述在每个时间段内通过随机算法确定的请求事件筛选时间点的个数与所确定的在该时间段内的被选中请求事件的数量相对应。进一步地,在有多个种类的事件处理函数与被选中请求事件对应的情况下,为每个被选中请求事件随机确定对应的事件处理函数的类型,在判断到已使用相同类型的事件处理函数处理过该用户之前发起的请求事件时,则忽略该用户在后发起的被选中的请求事件。进一步地,若在当前请求事件筛选时间区间内未接收到请求事件,则将当前请求事件筛选时间点对应的被选中请求事件的名额累积到下一请求事件筛选时间区间内,或将当前请求事件筛选时间点对应的被选中请求事件的名额做过期作废处理。基于本发明实施例的另一方面,提供一种网络请求事件筛选装置,该装置包括:设置模块,用于设置请求事件筛选时间范围,被选中请求事件的数量;请求事件筛选时间点确定模块,用于在请求事件筛选时间范围内,通过随机算法确定一个或多个请求事件筛选时间点;请求事件筛选模块,用于比较接收到的请求事件的时间点与当前请求事件筛选时间点,依据在当前请求事件筛选时间区间内接收到的请求事件的时间顺序确定被选中的请求事件;所述请求事件筛选时间区间指大于等于当前请求事件筛选时间点小于下一请求事件筛选时间点之间的时间区间,若当前请求事件筛选时间点为最后一个请求事件筛选时间点,则所述请求事件筛选时间区间指大于等于最后一个请求事件筛选时间点小于请求事件筛选时间范围的结束时间点之间的时间区间。进一步地,在一个请求事件筛选时间点对应一个被选中请求事件的情况下,所述请求事件筛选模块用于将在当前请求事件筛选时间区间内接收到的第一个请求事件确定为被选中的请求事件;在一个请求事件筛选时间点对应多个被选中请求事件的情况下,将在当前请求事件筛选时间区间内最先接收到的对应个数的请求事件确定为被选中请求事件。进一步地,所述请求事件筛选时间点确定模块还用于将所述请求事件筛选时间范围分为多个时间段,在每个时间段内通过随机算法确定一个或多个请求事件筛选时间点。进一步地,所述请求事件筛选时间点确定模块还用于依据用户在线曲线为每个时间段分配权值,依据所述权值确定在每个时间段内被选中请求事件的数量;所述请求事件筛选时间点确定模块在每个时间段内通过随机算法确定的请求事件筛选时间点的个数与为该时间段确定的被选中请求事件数量相对应。进一步地,在有多个种类的事件处理函数与被选中请求事件对应的情况下,为每个被选中请求事件随机确定对应的事件处理函数的类型,在判断到已使用相同类型的事件处理函数处理过该用户之前发起的请求事件时,则忽略该用户在后发起的被选中的请求事件。进一步地,若在当前请求事件筛选时间区间内未接收到请求事件,则请求事件筛选模块将当前请求事件筛选时间点对应的被选中请求事件的名额累积到下一请求事件筛选时间区间内,或将当前请求事件筛选时间点对应的被选中请求事件的名额做过期作废处理。本发明通过将待筛选请求事件的个数与多个预设的时间点进行对应,根据预设时间点与请求事件发出方的访问时间或发起请求事件的时间之间的比对关系来确定请求事件是否被选中,本发明提供的方法能够保证在面临恶意并发攻击的情况下正确筛选出所需请求事件,也能够保证,不管在请求量少的情况还是在请求量大的情况下都能正确筛选出所需数量的请求事件,从而增加了网络请求事件筛选的可控制性,提升了网络请求事件筛选的抗干扰度。附图说明图1为本发明实施例提供的一种请求事件筛选方法的步骤流程图;图2为本发明请求事件筛选方法;图3为本发明提出的一种实现本发明所述方法的用户终端。具体实施方式本发明的基本思想是:将每个要被筛选出来的请求事件采用一定算法(可以是人为设置或采用随机算法)与时间进行对应,这样一系列要被筛选出来的请求事件就转化为一个与时间相关的序列(下文简称时间序列),每个请求事件收到后,根据请求事件收到时的时间与请求事件筛选时间序列进行比对的结果来判断请求事件是否被选中为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图1为本发明实施例提供的一种请求事件筛选方法的步骤流程图,该方法具体包括如下步骤:步骤101、配置请求事件筛选时间范围;在请求事件筛选开始之前,由系统管理人员设定请求事件筛选时间范围,在请求事件筛选时间范围之内接收到的请求事件被认为是有效的请求事件,在请求事件筛选时间范围之外接收到的请求事件将被忽略。例如可设定请求事件筛选时间范围为:2011年12月1日上午11:00起至2011年12月1日晚上11:00,共12个小时,在该时间范围之内的请求事件为有效请求事件。步骤102、设置在请求事件筛选时间范围内将要被筛选出的请求事件数量N;步骤103、通过随机算法在请求事件筛选时间范围内确定请求事件筛选时间点;该实施例采用随机算法来在请求事件筛选时间范围内确定请求事件筛选时间点,以步骤1设定的请求事件筛选时间范围为例,若将要被筛选出的请求事件数量为12,则将请求事件筛选时间范围分为12段,每段对应1小时,即需在上午11:00至晚上11:00之间确定12个请求事件筛选时间点,若考虑到请求事件筛选时间点在时间轴上的分配均匀性,则可通过如下算式来产生请求事件筛选时间点:Tpi=Ti*3600+Rand(Maxint)mod3600其中,i为大于等于0小于12的正整数,Tpi为请求事件筛选时间点(单位为秒),Ti为请求事件筛选开始后逝去的小时数,Maxint为随机函数Rand()所使用的随机因子,指示随机函数产生小于等于Maxint的随机数。该算式的含义为:在当前小时范围内确定一个随机时间点作为当前小时内的请求事件筛选时间点。例如,在第3小时内确定请求事件筛选时间点Tp3的计算方式为:假设随机函数给出的随机值6530,Tp3=2*3600+6530mod3600=10130,即在开始请求事件筛选后的第10130秒为一个请求事件筛选时间点。在不考虑请求事件筛选时间点在时间轴上分配地均匀性的情况下,可完全随机地在请求事件筛选开始的第一秒到请求事件筛选结束的最后一秒之间产生出12个请求事件筛选时间点即可,仍以步骤101设定的请求事件筛选时间范围为例,若要筛选出的请求事件数量为12,则产生请求事件筛选时间点的方法为:Tpi=start_time+Rand(12*3600)其中,i为大于等于0小于12的正整数,Tpi为请求事件筛选时间点,start_time为请求事件筛选时间范围起始时间(单位为秒)。则此种情况下的时间点可以是大于等于请求事件筛选时间范围起始时间点小于请求事件筛选时间范围结束时间点的任意值,并且通过这种完全随机方式产生的请求事件筛选时间点需要先进行排序确定请求事件筛选时间点的先后次序。步骤104、接收到请求事件后,将接收到请求事件的时间点与当前请求事件筛选时间点进行比较,将当前请求事件筛选时间区间内最先发起的请求事件确定为被选中的请求事件;所述请求事件筛选时间区间指大于等于当前请求事件筛选时间点小于下一请求事件筛选时间点之间的时间区间,若当前请求事件筛选时间点为最后一个请求事件筛选时间点,则所述请求事件筛选时间区间指大于等于当前请求事件筛选时间点小于请求事件筛选结束时间点之间的时间区间;该实施例中,若当前请求事件筛选时间点只对应一个被选中的请求事件,则在当前请求事件筛选时间区间内的第一个请求事件即被确定为被选中的请求事件,如图2所示,其中双线空心圆为请求事件筛选时间点(对应所有要被筛选出的请求事件,从而把一系列的要被筛选出的请求事件转化为一个与时间相关的序列),三角形为请求事件接收到的时间点,在筛选第i个请求事件时,系统接收到的请求事件X的时间点是最接近第i个请求事件筛选时间点的,且满足大于或者等于第i个请求事件筛选时间点这一条件,因此系统确定请求事件X被选中,并记录请求事件X的相关信息;若当前请求事件筛选时间点对应多个被选中的请求事件,则将当前请求事件筛选时间区间内最先接收到的对应数量的请求事件确定为被选中的请求事件,例如:假设当前请求事件筛选时间点需要筛选的请求事件数量为N,则将当前请求事件筛选时间区间内最先接收到的N个请求事件确定为被选中的请求事件;优选地,若在当前请求事件筛选时间区间内未接收到请求事件,则将当前请求事件筛选时间点对应的被选中请求事件的名额累积到下一请求事件筛选时间区间内,或将当前请求事件筛选时间点对应的被选中请求事件的名额做过期作废处理实施例2该实施例中,将请求事件筛选时间范围等周期划分为多个时间段,划分周期可根据需要自行确定,例如可确定为1个小时或半个小时,对于每个时间段,根据统计平均的用户在线数量赋予该对应的时间段一个权值,然后将该权值根据一定的比例关系换算成要被选中的请求事件数量,并通过随机方式为对应的时间段生成与要被选中的请求事件数量相等的请求事件筛选时间点。如图3所示,具体步骤如下:步骤301、设置请求事件筛选时间范围为6点到12点,将请求事件筛选时间范围分成6等份,分别为T1~T6,根据每个时间段内统计平均用户在线数量,按一定的比例关系为对应时间段设定被选中的请求事件数量;例如在T1~T6六个时间段内,统计平均用户在线数量分别为10万、30万、80万、80万、30万、10万,按十万分之一的筛选率来为每个时间段设置被选中的请求事件数量,则在T1~T6六个时间段内设置的请求事件筛选时间点分别为1个、3个、8个、8个、3个、1个,相当于为每个时间段赋一个权值,平均在线用户数量越多,权值越大,对应的被选中的请求事件数量也就越多。步骤303、通过随机算法为每个时间段生成与该时间段被选中的请求事件数量相等的请求事件筛选时间点;步骤304、接收到请求事件后,将接收到请求事件的时间点与当前请求事件筛选时间点进行比较,将当前请求事件筛选时间区间内最先发起的请求事件确定为被选中的请求事件;参照图2所示的方法,由于一个请求事件筛选时间点只对应一个被选中的请求事件,因此在当前请求事件筛选时间区间内第一个请求事件即被确定为被选中的请求事件;若当前请求事件筛选时间点对应多个被选中的请求事件,则将当前请求事件筛选时间区间内最先接收到的对应数量的请求事件确定为被选中的请求事件。优选地,在有多个种类的事件处理函数与被选中请求事件对应的情况下,为每个被选中请求事件随机确定对应的事件处理函数的类型,例如可将事件处理函数随机打乱,将随机排列的事件处理函数序列对应到随机产生的请求事件筛选时间点序列,每个请求事件筛选时间点对应的事件处理函数类型都不确定。例如有二种事件处理函数类型,分别为A类和B类,设置有10个请求事件筛选时间点,有3个A类事件处理函数,7个B类事件处理函数,则通过随机方式将A类和B类事件处理函数混合在一起形成形如BBABBABBBA的事件处理函数序列,将该事件处理函数序列按顺序对应到每个请求事件筛选时间点,请求事件筛选时,根据请求事件筛选时间点与事件处理函数类型的对应关系确定被选中的请求事件对应的事件处理函数。进一步地,所述方法还可支持事件处理函数类型屏蔽功能,例如,在判断到已使用相同类型的事件处理函数处理过该用户之前发起的请求事件时,则忽略该用户在后发起的被选中的请求事件,不对该用户发出的请求事件使用相同类型的事件处理函数处理;若该时间点对应的事件处理函数类型该用户之前发出的请求事件未使用过,则允许该用户发出的请求事件使用该事件处理函数。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1