作弊请求识别方法、装置、电子设备及计算机存储介质
技术领域
本公开涉及网络安全技术领域,具体而言,本公开涉及一种作弊请求识别方法、装置、电子设备及计算机存储介质。
背景技术
随着移动互联网的普及,用户参与并产出的大量优质的多媒体内容存放在互联网上。而针对这些优质内容的作弊现象也愈发严重。黑色产业链通过批量请求并获取大量用户内容,再进行搬运上传、转发、贩卖等手段牟取利益。
尤其当客户端信息被破解、设备硬件信息出现篡改时,大批量的爬取请求往往会被漏过,严重危害了互联网平台的安全性、公平性。因此如何对大批量的作弊请求进行识别成为了一个亟待解决的问题。
发明内容
本公开提供了一种请求识别的方法、装置、电子设备及计算机存储介质,用于解决识别大批量作弊请求的技术问题。
第一方面,提供了一种作弊请求识别的方法,该方法包括:
获取待识别的访问请求;
获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
第二方面,提供了一种作弊请求识别的装置,该装置包括:
第一获取模块,用于获取待识别的访问请求;
第二获取模块,用于获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
确定模块,用于当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
第三方面,提供了一种电子设备,该电子设备包括:
处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本公开的第一方面所示的作弊请求识别的方法对应的操作。
第四方面,提供了一种计算机存储介质,计算机存储介质上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所示的作弊请求识别的方法。
本公开提供的技术方案带来的有益效果是:
本公开可以获取用于识别作弊请求的基准信息,当待识别的访问请求的客户端信息与用于识别作弊请求的基准信息相匹配时,将该访问请求识别为作弊请求并进行拦截。由于基准信息是根据预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息,可以理解的是,本公开的该方法从服务端的角度提出了一种新的作弊请求识别方法,能够在不完全依赖客户端信息前提下,结合客户端信息和服务端信息两种维度的信息,基于历史请求分析出的异常请求的表现特征,将其作为识别后续请求的基准信息,因此后续在进行请求识别时,根据基准信息可以快速、自适应地识别出新出现的、大批量的作弊请求,而且基于历史请求分析出基准信息,其时效性也比较好,能够更好地适应时间关联地下一阶段地请求识别场景。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种作弊请求识别方法的流程示意图;
图2为本公开实施例提供的一种确定基准信息的流程示意图;
图3为本公开实施例提供的一种确定异常请求集合的流程示意图;
图4为本公开实施例提供的一种作弊请求识别装置的结构示意图;
图5为本公开实施例提供的一种基准信息确定装置的结构示意图;
图6为本公开实施例提供的一种筛选模块的结构示意图;
图7为本公开实施例提供的一种作弊请求识别的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/ 或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开提供的请求识别方法、装置、电子设备和计算机存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
本公开实施例中提供了一种作弊请求识别的方法,如图1所示,该方法包括:
步骤S101:获取待识别的访问请求;
在具体实现时,可以从客户端获取线上访问请求作为待识别的访问请求,也可以从服务端获取访问请求作为待识别的访问请求。
步骤S102,获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
步骤S103:当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
可以理解的是,可以将用于识别作弊请求的基准信息作为识别标准;、在获取线上的待识别访问请求时,可以根据线上的访问请求对应的客户端信息与用于识别作弊请求的基准信息进行比对,当二者进行比对的相似度超过预设相似度,比如基准信息中包括的客户端信息特征值包括操作系统=ios,软件版本号=10.0,设备型号=iphone7,省份=广东,待识别访问请求中的客户端信息特征值包括系统=ios,软件版本号=11.0,设备型号=iphone7,省份=广东。此时可以识别该待识访问请求为作弊请求,进而可以拦截该访问请求,也可以不响应该访问请求。
本公开可以获取用于识别作弊请求的基准信息,当待识别的访问请求的客户端信息与用于识别作弊请求的基准信息相匹配时,将该访问请求识别为作弊请求并进行拦截。由于基准信息是根据预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息,可以理解的是,本公开的该方法从服务端的角度提出了一种新的作弊请求识别方法,能够在不完全依赖客户端信息前提下,结合客户端信息和服务端信息两种维度的信息,基于历史请求分析出的异常请求的表现特征,将其作为识别后续请求的基准信息,因此后续在进行请求识别时,根据基准信息可以快速、自适应地识别出新出现的、大批量的作弊请求,而且基于历史请求分析出基准信息,其时效性也比较好,能够更好地适应时间关联地下一阶段地请求识别场景。
本公开实施例中还提供了一种确定基准信息的方法,如图2所示,该方法包括:
步骤S201:获取预设时间周期内的历史请求各自的请求特征,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
需要说明的是,本公开实施例中的作弊请求识别方法是从服务器的角度进行识别的,可以基于历史请求中的各个请求特征识别出作弊请求的请求特征。具体的,可以事先获取预设时间周期内,比如一个小时内或者一天内的历史请求作为样本数据。
可选的,服务器在接收历史请求时会记录的各个请求的请求接口信息与请求时间信息等服务端信息;还会获得用户在提交请求时提交的客户端信息,可选的,客户端信息包括客户端的软件信息和硬件信息,其中,客户端软件信息可以包括:用户标识、设备标识、软件版本号、软件下载渠道等信息,客户端硬件信息可以包括:设备标识、操作系统类型、设备类型、网络类型等信息。
步骤S202:基于历史请求的请求特征,对所述预设时间周期内的历史请求进行分组归类得到多个请求集合,每个请求集合中包括所述预设时间周期内的至少一个历史请求。
可以理解的是,为了提高统计效率,可以将各个请求按照预设标准进行分组归类得到多个请求集合,在每一请求集合中的请求有共同的预设标准。
可选的,在本公开的一个实施例中,对预设时间周期内的历史请求分组归类得到多个请求集合可以是:
针对预设时间周期内的每个历史请求,对该历史请求对应的请求特征中的客户端信息进行哈希运算得到该历史请求对应的哈希值;
基于历史请求对应的哈希值,将同一哈希值对应的各历史请求分组归类至同一请求集合。
具体的,可以将任一历史请求的客户端信息特征进行字符串转换,并将转换后的字符串进行哈希运算得到该历史请求对应的哈希值,然后将同一哈希值对应的各个历史请求划分为同一请求集合。可以理解的是,经过上述分组标准进行归类后的每一请求集合中,各个请求的客户端信息是相同的。
步骤S203:根据每个请求集合中的历史请求的请求时间信息,从所述多个请求集合中筛选出请求时间分布异常的请求集合,作为异常请求集合;
可以理解的是,如果在某个时间点或者每个时间段内有大批量的请求,那么这批请求为作弊请求的概率又进了一步,因此可以利用每个请求的请求时间信息确定每个请求集合的请求时间分布,然后将请求时间分布异常的请求集合作为异常请求集合。
可选的,在本公开一个实施例中,还可以从多个请求集合中筛选出请求个数大于第一预设阈值的请求集合,作为候选请求集合;根据每个候选请求集合中的历史请求的请求时间信息,从多个候选请求集合中筛选出请求时间分布异常的请求集合。
可以理解的是,由于作弊请求往往是大批量的,那么在每一集合中的请求量规模也比较大,为了提高处理效率,请求量较少的请求集合不在本实施例的考虑范围内。具体的,可以将请求量大于第一预设阈值的请求集合,作为候选请求集合,然后根据每个候选请求集合中的历史请求的请求时间信息,从候选请求集合中筛选出请求时间分布异常的请求集合。
可选的,在本公开的一个实施例中,如图3所示,确定异常请求集合可以包括以下步骤:
步骤S2031:针对多个请求集合中每个请求集合,确定该请求集合的请求时间分布,请求时间分布表征在时间维度上请求量的分布情况;
步骤S2032:确定该请求集合的请求时间分布与预先统计的请求时间平稳分布的分布差异,作为请求时间分布差异;
步骤S2033:筛选出请求时间分布差异大于预设差异阈值的请求集合,作为请求时间分布异常的请求集合。
可以理解的,每个请求都有其对应的请求时间信息,具体的,以预设时间周期为1小时为例,当请求时间信息以每5分钟为间隔时,请求时间信息特征值为0~11。然后统计每5分钟内的请求量,作为请求集合的请求时间分布。
需要说明的是,一定时间内缓存的总请求量是有限的,因此任一请求集合所对应的请求时间分布也是有限且可控制的。
可以理解的是,如果某一请求集合对应的请求时间分布与预先统计的请求时间平稳分布的分布差异过大时,可以初步判断该请求集合内的请求可能是作弊请求。
在一种可选的实施例中,可以假设在预设时间1小时内正常请求的请求时间分布为请求时间平稳分布,然后计算任一请求集合所对应的请求时间分布与请求时间平稳分布的差异。
具体的,可以计算任一请求集合所对应的请求时间分布与请求时间平稳分布之间的方差,当二者的方差大于预设方差时,那么确定该请求时间分布对应的请求集合为异常请求集合。或者可以计算该请求时间分布中的最小值与最大值的比例,当该请求中时间分布中的最小值与最大值的比例小于预设比值时,也可确定请求时间分布所对应的请求集合为异常请求集合。
步骤S204:针对每个异常请求集合,从请求接口信息维度确定对应的第一分布以及从各客户端信息维度确定与每个客户端信息对应的第二分布,所述第一分布为接口请求联合分布,所述第二分布为接口请求边缘分布;
在得到异常请求集合后,针对每个异常请求集合,统计该异常请求集合的请求接口信息,然后在每个异常请求集合内,统计每个请求接口信息对应的请求量,每个异常请求集合的接口请求联合分布可以表征为该异常请求集合针对每一请求接口信息的请求量。
举例而言,可以通过下式得到每一异常请求集合的接口请求联合分布
event_p={P(event_id=i)=c|F1=V1i,F2=V2i,…,Fn=Vni};
其中,event_id表示请求接口信息,i表示请求接口信息特征值,c 表示预设时间周期内的请求总量,F1…,Fn表示多个客户端信息,V1i… Vni表示多个客户端信息特征值。
首先需要说明的是,在每个异常请求集合中,由于每个异常请求集合中的客户端信息是多个的,那么针对每个客户端信息计算的第二分布,即接口请求边缘分布也是多个的,在该异常请求集合中,有多少个客户端信息,就有多少个接口请求边缘分布。
可选的,在本公开的一个实施例中,可以通过以下方式针对异常请求集合,确定每个客户端信息对应的第二分布:
针对每个客户端信息,从预设时间周期内的历史请求中提取与该客户端信息匹配的历史请求,作为参考历史请求;
基于参考历史请求各自的请求接口信息,生成接口请求边缘分布,作为该客户端信息对应的第二分布
可以理解的是,假设一个异常请求集合中有N个客户端信息,针对任一客户端信息的特征值,从预设周期时间内的历史请求中提取中具有同样客户端信息特征值的请求,作为参考历史请求。然后针对这些参考历史请求,统计这些参考历史请求中的请求接口信息,进而统计每个请求接口信息对应的请求量,每个异常请求集合的接口请求边缘分布可以表征为该异常请求集合内某一客户端信息特征值针对每一请求接口信息的请求量。因此,针对一个异常请求集合,可以得到N个接口请求边缘分布。
举例而言,可以通过下式得到每一异常请求集合任一接口请求边缘分布。
event_pj={P(event_id=i)=c|Fj=Vji};
其中,event_id表示请求接口信息,i表示请求接口信息特征值,c 表示预设时间周期内的请求总量,j表示客户端信息编号,并且j的取值为1…n,Fj表示任一客户端信息,Vji表示任一客户端信息特征值。
假设现在这个异常请求集合对应的历史请求有10个。客户端信息包括操作系统=ios,软件版本号=10.0,设备型号=iphone7,省份=广东。假设现在只有这4个客户端信息特征值,这10个请求的请求接口都为A,那么该异常请求集合对应的接口请求联合分布,结果就是 {P(event_id=A)=10}。
假设现在同时还有操作系统=ios,软件版本号=11.0,设备型号=iphone9,省份=广东,的历史请求100个请求,并且这100个请求的请求接口都为B,那么该异常请求集合对应的操作系统的接口请求边缘分布分布结果是{P(event_id=A)=10,P(event_id=B)=100},该异常请求集合对应的软件版本号=10.0的边缘分布,结果是{P(event_id=A)=10}。
步骤S205:针对每个异常请求集合,根据异常请求集合对应的每个第二分布与第一分布的分布差异,确定异常请求集合是否通过接口分布校验。
其中,当第一分布与第二分布的分布差异满足预设条件时,该异常请求集合通过接口分布校验。
可选的,在本公开的一个实施例中,确定异常请求集合是否通过接口分布校验,包括以下步骤:
针对每个异常请求集合中每个客户端信息,确定对应的第二分布与第一分布之间的散度值,作为分布差异;
针对每个异常请求集合,统计散度值大于预设散度值阈值的客户端信息个数;
当统计出的客户端信息个数大于预设个数阈值时,确定该异常请求集合通过接口分布校验。
具体的,举例而言,假设任一异常请求集合对应N个接口请求边缘分布,针对每个客户端信息特征值,计算该客户端特征值对应的接口请求边缘分布与该异常请求集合接口请求联合分布的散度值,最后得到N个散度值,其中,散度值越大,表明这两个分布的差异越大。然后统计上述N个散度值中大于预设散度值的客户端信息特征值的数量,当统计出的客户端特征值的数量大于预设阈值时,则该异常请求集合通过接口分布校验。
步骤S206:将通过接口分布校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
可以理解的是,当异常请求集合通过接口分布校验时,表明在异常请求集合中,每一客户端特征值所对应接口请求联合分布与接口请求边缘分布的差异达到了一定的程度,说明样本和整体的趋势差别比较大,有可能是作弊请求。此时可以将该请求集合中的客户端信息特征值作为基准信息,以用来识别后续请求是否为作弊请求。
本公开从服务端的角度提出了一种新的作弊请求识别方法,能够在不完全依赖客户端信息前提下,可以基于历史请求的客户端信息对历史请求进行分组处理,提高数据的处理效率,并且通过历史请求的服务端信息分析出的异常请求的表现特征,将其作为识别后续请求的基准信息,因此后续在进行请求识别时,根据基准信息可以快速、自适应地识别出新出现的、大批量的作弊请求,而且基于历史请求分析出基准信息,其时效性也比较好,能够更好地适应时间关联地下一阶段地请求识别场景。
此外,为了更精准地确定作弊请求的客户端信息特征值,还可以在各个历史请求的请求特征中添加用户质量等级信息这一请求特征,其中,用户质量等级信息可以理解为用户在平台上被标注的质量等级。具体的,可以根据用户设备标识在平台使用过程中的日志记录,在历史数据的基础上挖掘出一份高质量用户的用户设备标识名单。按照历史请求的用户设备标识是否在该名单中确定对应的用户标识的用户质量等级。
可选的,在本公开的一个实施例中,作弊请求识别的方法还包括如下步骤:
针对通过接口分布校验的每个异常请求集合,统计满足预设用户质量等级的用户个数,根据统计的用户个数确定异常请求集合是否通过用户质量校验;
将通过接口分布校验且通过用户质量校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
可以理解的是,在通过接口分布校验的每个异常请求集合中,如果用户标识对应的用户质量等级属于高质量用户的个数小于预设阈值,比如该异常请求集合中的用户标识对应的用户质量等级均不属于高质量用户,那么该异常集合通过用户质量校验。此时将满足接口分布校验并且通过用户质量校验的该异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准消息,以用来识别后续请求是否为作弊请求。
本公开实施例中提供了一种作弊请求识别装置,如图4所示,该作弊请求识别装置40包括:第一获取模块401、第二获取模块402及确定模块403,
第一获取模块401,用于获取待识别的访问请求;
第二获取模块402,用于获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
确定模块403,用于当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
可以理解的是,可以将用于识别作弊请求的基准信息作为识别标准;、在获取线上的待识别访问请求时,可以根据线上的访问请求对应的客户端信息与用于识别作弊请求的基准信息进行比对,当二者进行比对的相似度超过预设相似度,比如基准信息中包括的客户端信息特征值包括操作系统=ios,软件版本号=10.0,设备型号=iphone7,省份=广东,待识别访问请求中的客户端信息特征值包括系统=ios,软件版本号=11.0,设备型号=iphone7,省份=广东。此时可以识别该待识访问请求为作弊请求,进而可以拦截该访问请求,也可以不响应该访问请求。
本公开可以获取用于识别作弊请求的基准信息,当待识别的访问请求的客户端信息与用于识别作弊请求的基准信息相匹配时,将该访问请求识别为作弊请求并进行拦截。由于基准信息是根据预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息,因此后续在进行请求识别时,根据基准信息可以快速、自适应地识别出新出现的、大批量的作弊请求,而且基于历史请求分析出基准信息,其时效性也比较好,能够更好地适应时间关联地下一阶段地请求识别场景。
本公开实施例还提供了一种基准信息确定装置,如图5所示,该请求识别装置50可以包括:获取模块501、分组模块502、筛选模块503、第一确定模块504、第二确定模块505以及确定模块506,其中,
获取模块501,用于获取预设时间周期内的历史请求各自的请求特征,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息。
分组模块502,用于基于历史请求的请求特征,对所述预设时间周期内的历史请求进行分组归类得到多个请求集合,每个请求集合中包括所述预设时间周期内的至少一个历史请求。
筛选模块503,用于根据每个请求集合中的历史请求的请求时间信息,从所述多个请求集合中筛选出请求时间分布异常的请求集合,作为异常请求集合;
第一确定模块504,用于针对每个异常请求集合,从请求接口信息维度确定对应的第一分布以及从各客户端信息维度确定与每个客户端信息对应的第二分布,所述第一分布为接口请求联合分布,所述第二分布为接口请求边缘分布;
第二确定模块505,用于针对每个异常请求集合,根据异常请求集合对应的每个第二分布与第一分布的分布差异,确定异常请求集合是否通过接口分布校验。
第三确定模块506,用于将通过接口分布校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
其中,本实施例的基准信息确定装置可执行本申请前述实施例所示的确定基准信息的方法,其实现原理相类似,此处不再赘述。
本公开从服务端的角度提出了一种新的作弊请求识别方法,能够在不完全依赖客户端信息前提下,可以基于历史请求的客户端信息对历史请求进行分组处理,提高数据的处理效率,并且通过历史请求的服务端信息分析出的异常请求的表现特征,将其作为识别后续请求的基准信息,因此后续在进行请求识别时,根据基准信息可以快速、自适应地识别出新出现的、大批量的作弊请求,而且基于历史请求分析出基准信息,其时效性也比较好,能够更好地适应时间关联地下一阶段地请求识别场景。
可选的,在本公开的一个实施例中,筛选模块503可以包括以下子模块:
分布确定子模块6031,用于针对多个请求集合中每个请求集合,确定该请求集合的请求时间分布,请求时间分布表征在时间维度上请求量的分布情况;
差异确定子模块6032,用于确定该请求集合的请求时间分布与预先统计的请求时间平稳分布的分布差异,作为请求时间分布差异;
筛选子模块6033,用于筛选出请求时间分布差异大于预设差异阈值的请求集合,作为请求时间分布异常的请求集合。
其中,本实施例中筛选模块包括的各个子模块申请前述实施例所示的确定异常请求集合的方法,其实现原理相类似,此处不再赘述。
下面参考图7,其示出了适于用来实现本公开实施例的电子设备500 的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端) 等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文所述的处理装置501,存储器可以包括下文中的只读存储器(ROM)502、随机访问存储器(RAM)503以及存储装置508中的至少一项,具体如下所示:
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线 504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5 示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机介质可以是计算机信号介质或者计算机存储介质或者是上述两者的任意组合。计算机存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机信号介质还可以是计算机存储介质以外的任何计算机介质,该计算机信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
获取待识别的访问请求;
获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器介质可以是机器信号介质或机器储存介质。机器介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种作弊请求识别方法,包括:
获取待识别的访问请求;
获取用于识别作弊请求的基准信息;其中,基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
当访问请求的客户端信息与基准信息匹配时,确定访问请求为作弊请求。
可选的,确定基准信息包括以下步骤:
获取预设时间周期内的历史请求各自的请求特征,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
基于历史请求的请求特征,对预设时间周期内的历史请求进行分组归类得到多个请求集合,每个请求集合中包括预设时间周期内的至少一个历史请求;
根据每个请求集合中的历史请求的请求时间信息,从多个请求集合中筛选出请求时间分布异常的请求集合,作为异常请求集合;
针对每个异常请求集合,从请求接口信息维度确定对应的第一分布以及从各客户端信息维度确定与每个客户端信息对应的第二分布,第一分布为接口请求联合分布,第二分布为接口请求边缘分布;
针对每个异常请求集合,根据异常请求集合对应的每个第二分布与第一分布的分布差异,确定异常请求集合是否通过接口分布校验;
将通过接口分布校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
可选的,基于历史请求的请求特征,对预设时间周期内的历史请求进行分组归类得到多个请求集合,包括:
针对预设时间周期内的每个历史请求,对该历史请求对应的请求特征中的客户端信息进行哈希运算得到该历史请求对应的哈希值;
基于历史请求对应的哈希值,将同一哈希值对应的各历史请求分组归类至同一请求集合。
可选的,在从多个请求集合中筛选出请求时间分布异常的请求集合之前,上述方法还包括:
从多个请求集合中筛选出请求个数大于第一预设阈值的请求集合,作为候选请求集合;
则从多个请求集合中筛选出请求时间分布异常的请求集合包括:
从多个候选请求集合中筛选出请求时间分布异常的请求集合。
可选的,根据每个请求集合中的历史请求的请求时间信息,从多个请求集合中筛选出请求时间分布异常的请求集合,包括:
针对多个请求集合中每个请求集合,确定该请求集合的请求时间分布,请求时间分布表征在时间维度上请求量的分布情况;
确定该请求集合的请求时间分布与预先统计的请求时间平稳分布的分布差异,作为请求时间分布差异;
筛选出请求时间分布差异大于预设差异阈值的请求集合,作为请求时间分布异常的请求集合。
可选的,通过以下方式针对异常请求集合,确定每个客户端信息对应的第二分布:
针对每个客户端信息,从预设时间周期内的历史请求中提取与该客户端信息匹配的历史请求,作为参考历史请求;
基于参考历史请求各自的请求接口信息,生成接口请求边缘分布,作为该客户端信息对应的第二分布。
可选的,针对每个异常请求集合,根据异常请求集合对应的每个第二分布与第一分布的分布差异,确定异常请求集合是否通过接口分布校验,包括:
针对每个异常请求集合中每个客户端信息,确定对应的第二分布与第一分布之间的散度值,作为分布差异;
针对每个异常请求集合,统计散度值大于预设散度值阈值的客户端信息个数;
当统计出的客户端信息个数大于预设个数阈值时,确定该异常请求集合通过接口分布校验。
可选的,请求特征还包括用户质量等级信息,用户质量信息用于标识用户在平台上被标注的质量等级;
上述方法还包括:
针对通过接口分布校验的每个异常请求集合,统计满足预设用户质量等级的用户个数,根据统计的用户个数确定异常请求集合是否通过用户质量校验;
则将通过接口分布校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息,包括:
将通过接口分布校验且通过用户质量校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
可选的,客户端信息包括以下至少一种信息:
操作系统类型、设备类型、软件版本号、网络类型、软件下载渠道、用户标识和设备标识。
根据本公开的一个或多个实施例,提供了一种作弊请求识别装置,还包括:
第一获取模块,用于获取待识别的访问请求;
第二获取模块,用于获取用于识别作弊请求的基准信息;其中,所述基准信息是基于预设时间周期内的历史请求各自的请求特征,筛选出的通过接口分布校验的异常请求集合对应的客户端信息;其中,所述请求特征包括客户端信息和服务端信息,所述服务端信息包括请求接口信息和请求时间信息;
确定模块,用于当所述访问请求的客户端信息与所述基准信息匹配时,确定所述访问请求为作弊请求。
可选的,基准信息的确定包括以下模块:
获取模块,用于获取预设时间周期内的历史请求各自的请求特征,请求特征包括客户端信息和服务端信息,服务端信息包括请求接口信息和请求时间信息;
分组模块,用于基于历史请求的请求特征,对预设时间周期内的历史请求进行分组归类得到多个请求集合,每个请求集合中包括预设时间周期内的至少一个历史请求;
筛选模块,用于根据每个请求集合中的历史请求的请求时间信息,从多个请求集合中筛选出请求时间分布异常的请求集合,作为异常请求集合;
第一确定模块,用于针对每个异常请求集合,从请求接口信息维度确定对应的第一分布以及从各客户端信息维度确定与每个客户端信息对应的第二分布,第一分布为接口请求联合分布,第二分布为接口请求边缘分布;
第二确定模块,用于针对每个异常请求集合,根据异常请求集合对应的每个第二分布与第一分布的分布差异,确定异常请求集合是否通过接口分布校验;
第三确定模块,用于将通过接口分布校验的异常请求集合对应的客户端信息,确定为用于识别作弊请求的基准信息。
根据本公开的一个或多个实施例,提供了一种作弊请求识别电子设备,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述作弊请求识别方法。
根据本公开的一个或多个实施例,提供了一种作弊请求识别的计算机存储介质,包括:
计算机存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行上述请求识别方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。