一种用户行为验证的反作弊方法及装置与流程

文档序号:15751854发布日期:2018-10-26 17:54阅读:296来源:国知局
一种用户行为验证的反作弊方法及装置与流程
本发明涉及互联网应用
技术领域
,尤其涉及一种用户行为验证的反作弊方法及装置。
背景技术
:在互联网行业,用户数量和活跃频率是产品的核心命脉。为了鼓励用户注册和增加用户粘度,很多产品都会设立用户奖励,以促进用户使用。例如,通过设置新用户领红包、连续登陆奖励等来鼓励新用户下载,老用户持续登录。特别是在移动互联网中,一些应用程序(app)的推广阶段,往往会设置相对价值较高的奖励。对于用户来说,用户行为(下载,登录等)满足一定的验证条件(例如,已经下载软件,或者满足登录条件,在线时间等)即可领取奖励。但是,在奖励的利益的驱动下,往往会出现一些非正常用户的作弊的行为。甚至是会出现为了追求奖励或者恶意竞争,而采用自动作弊软件的大规模作弊,伪装用户行为的方式。如果作弊行为不能被识别和防止,将给产品发布方带来财产损失,同时也可能给产品发布方或者第三方机构统计用户行为带来影响。鉴于基于奖励的推广模式是在近期随着移动互联网的普及才大规模流行开来,针对领奖中用户行为验证的作弊问题,现有技术中尚无专门的研究,也没有相关的针对性解决方案。技术实现要素:本发明旨在至少在一定程度上解决相关技术中的技术问题之一,提供一种用户行为验证的反作弊方法及装置,以防范领奖过程中的作弊。为达上述目的,本发明第一方面的实施例提供了一种用于服务器侧用户行为验证的反作弊方法,其包括:接收客户端上传的用户行为信息;根据接收的用户行为信息进行分析,根据分析结果生成该用户的奖励信息,其中,当分析结果满足预设领奖条件时,生成第一领奖码,将第一领奖码加入所述奖励信息,并将所述第一领奖码的相关信息存储到服务器的有效领奖码集合;将奖励信息发送到客户端;接收客户端上传的领奖验证信息,从客户端上传的领奖验证信息中提取领奖码作为第二领奖码;根据服务器存储的有效领奖码集合对所述领奖验证信息中提取的第二领奖码的有效性进行验证,得到验证结果;将验证结果发送到客户端。在一些实施例中,所述接收客户端上传的用户行为信息包括:接收客户端上传的用户名和用户登录时间信息;根据接收的用户行为信息进行分析包括:根据当前接收的用户行为信息和累积接收的用户行为信息进行分析,获取用户的登录次数分布和/或登录时长分布;当分析结果满足预设领奖条件时,生成第一领奖码,包括:当用户的登录次数分布满足预设条件和/或登录时长分布满足预设条件时,生成第一领奖码。在一些实施例中,所述接收客户端上传的用户行为信息包括:接收客户端上传的用户名和领奖请求信息;根据接收的用户行为信息进行分析包括:判断该用户是否满足所述领奖请求所对应的奖励条件;当分析结果满足预设领奖条件时,生成第一领奖码,包括:当该用户是否满足所述领奖请求所对应的奖励条件时,生成第一领奖码。在一些实施例中,所述奖励信息还包括验证码,所述验证码为4-8位的字符串或含有用于识别的4-8位字符串的图片验证码。在一些实施例中,在每次预设领奖条件满足时生成的第一领奖码是不同的,且所述第一领奖码为加密编码。在一些实施例中,所述生成第一领奖码包括:获取当前用户的用户秘钥;根据第一领奖码的生成时间获取对应的第一领奖码的时间戳,并用所述用户秘钥对时间戳进行加密,生成加密结果;对加密结果进行第一编码,得到第一领奖码。在一些实施例中,所述生成第一领奖码还包括:当时间戳对应的最小的单位时间内需要生成多个领奖码时,进一步为所述时间戳设置标识位,所述标识位表示单位时间内领奖码的生成顺序号,并将设置有标识位的时间戳用所述用户秘钥进行加密得到加密结果。在一些实施例中,将第一领奖码的相关信息存储到服务器的有效领奖码集合包括:将第一领奖码的时间戳存储到服务器的有效领奖码集合;对领奖验证信息中提取的第二领奖码的有效性进行验证包括:根据第一编码的逆运算对第二验证码进行解码,得到解码结果;根据当前用户的用户秘钥对解码结果进行解密,得到解密结果;将解密结果与有效领奖码集合中的所有第一领奖码的时间戳进行比较;当存在与解密结果匹配的第一领奖码的时间戳时,判定解密结果对应的第二领奖码与所述时间戳对应的第一领奖码匹配,验证结果为第二领奖码有效。在一些实施例中,对领奖验证信息中提取的第二领奖码进行有效性验证包括:将第二领奖码与服务器存储的有效领奖码集合中的所有第一领奖码进行比较,当存在与第二领奖码匹配的第一领奖码时,验证结果为第二领奖码有效。在一些实施例中,当第二领奖码验证有效后,从所述有效领奖码集合中删除与所述第二领奖码匹配的第一领奖码及其相关信息。在一些实施例中,将第一领奖码的相关信息存储到服务器的有效领奖码集合还包括:将第一验证码的生成时间和有效期存储在服务器的有效领奖码集合;对领奖验证信息中提取的第二领奖码进行验证还包括:当存在与第二领奖码匹配的第一领奖码时,进一步将第二领奖码的验证时间与匹配的第一验证码的生成时间进行比较,判断所述第二领奖码的验证时间是否处于所述匹配的领奖码的有效期,处于有效期内则验证结果为第二领奖码有效;否则第二领奖码无效。在一些实施例中,将第一领奖码的相关信息存储到服务器的有效领奖码集合还包括:将第一领奖码的相关信息按照第一领奖码的生成顺序存储;对领奖验证信息中提取的第二领奖码进行验证还包括:将第二领奖码与有效领奖码集合中顺序最先的第一领奖码的相关信息进行比较,当所述第二领奖码与该顺序最先的第一领奖码匹配时,验证结果为第二领奖码有效;否则验证结果为第二领奖码无效。根据本发明第一方面的实施例还提供了一种用于客户端侧的用户行为验证的反作弊方法,其包括:向服务器上传用户行为信息;接收服务器反馈的奖励信息,所述奖励信息为根据用户行为信息的分析结果生成,当分析结果满足预设领奖条件时,所述领奖信息包括第一领奖码;从所述奖励信息中提取第一领奖码,并生成领奖验证信息,所述领奖验证信息包括所述第一领奖码;向服务器发送领奖验证信息;接收服务器反馈的验证结果,所述验证结果由服务器根据领奖验证信息生成。在一些实施例中,所述用户行为信息包括:用户名及用户登录时间信息,或者用户名和领奖请求信息。在一些实施例中,接收的服务器反馈的奖励信息还包括验证码,所述验证码为4-8位的字符串或含有用于识别的4-8位字符串的图片验证码;所述领奖验证信息包括所述第一领奖码和验证码。使用本发明的用户行为验证的反作弊方法,在用户领奖过程中通过客户端与服务器的交互,在领奖准备阶段,基于用户行为由服务器生成具有唯一性的动态领奖码发送到客户端,领奖执行过程中再由客户端将领奖码反馈到服务器进行验证,实现对领奖行为的有效性的判定。从而可对来自非客户端的领奖请求进行有效识别,使伪造或截获重发的领奖请求等传统作弊方式无法实现,增加了作弊成本,有利于杜绝作弊行为。本发明第二方面实施例提供了一种用于服务器侧的用户行为验证的反作弊装置,其包括:第一信息接收模块,用于接收客户端上传的用户行为信息;奖励信息生成模块,用于根据接收的用户行为信息进行分析,根据分析结果生成该用户的奖励信息,其中,当分析结果满足预设领奖条件时,生成第一领奖码,将第一领奖码加入所述奖励信息,并将所述第一领奖码的相关信息存储到服务器的有效领奖码集合;领奖码存储模块,用于存储有效领奖码集合;第一信息发送模块,用于将奖励信息发送到客户端;第二信息接收模块,用于接收客户端上传的领奖验证信息,从客户端上传的领奖验证信息中提取领奖码作为第二领奖码;领奖码验证模块,用于根据服务器存储的有效领奖码集合对所述领奖验证信息中提取的第二领奖码的有效性进行验证,得到验证结果;第二信息发送模块,用于将验证结果发送到客户端。在一些实施例中,所述奖励信息生成模块包括:领奖条件判断单元,用于根据用户行为信息判定当前用户是否满足相应的预设领奖条件;领奖码生成单元,用于在当前用户是否满足相应领奖条件时生成领奖码;奖励信息生成单元,用于根据领奖条件判断单元的判定结果和领奖码生成单元生成的领奖码生成奖励信息。在一些实施例中,所述领奖码生成单元生成领奖码包括:获取当前用户的用户秘钥;根据第一领奖码的生成时间获取对应的第一领奖码的时间戳,并用所述用户秘钥对时间戳进行加密,生成加密结果;对时间戳的加密结果进行第一编码,得到第一领奖码。在一些实施例中,所述奖励信息生成模块将第一领奖码的相关信息存储到服务器的有效领奖码集合包括:将第一领奖码的时间戳存储到服务器的有效领奖码集合;领奖码验证模块对领奖验证信息中提取的第二领奖码的有效性进行验证包括:根据第一编码的逆运算对第二验证码进行解码,得到解码结果;根据当前用户的用户秘钥对解码结果进行解密,得到解密结果;将解密结果与有效领奖码集合中的所有第一领奖码的时间戳进行比较;当存在与解密结果匹配的第一领奖码的时间戳时,判定解密结果对应的第二领奖码与时间戳对应的第一领奖码匹配,验证结果为第二领奖码有效。本发明第二方面实施例提供了一种用于客户端器侧的用户行为验证的反作弊装置,其包括:第三信息发送模块,用于向服务器上传用户行为信息;第三信息接收模块,用于接收服务器反馈的奖励信息,所述奖励信息为根据用户行为信息的分析结果生成,当分析结果满足预设领奖条件时,所述领奖信息包括第一领奖码;信息处理模块,用于从所述奖励信息中提取第一领奖码,并生成包括所述第一领奖码的领奖验证信息;第四信息发送模块,用于向服务器发送领奖验证信息;第四信息接收模块,接收服务器反馈的验证结果,所述验证结果由服务器根据领奖验证信息生成。根据本发明的装置,使用本发明的用户行为验证的反作弊方法,在用户领奖过程中通过客户端与服务器的交互,在领奖准备阶段,基于用户行为由服务器生成具有唯一性的动态领奖码发送到客户端,领奖执行过程中再由客户端将领奖码反馈到服务器进行验证,实现对领奖行为的有效性的判定。从而可对来自非客户端的领奖请求进行有效识别,使伪造或截获重发的领奖请求等传统作弊方式无法实现,增加了作弊成本,有利于杜绝作弊行为。本发明第三方面实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现根据本发明第一方面所述的服务器侧的用户行为验证的反作弊方法。本发明第三方面实施例还提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现根据本发明第一方面所述的客户端侧的用户行为验证的反作弊方法。本发明第四方面实施例提供了一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面所述的客户端侧的用户行为验证的反作弊方法。本发明第五方面实施例提供了一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的服务器侧的用户行为验证的反作弊方法。本发明第五方面实施例还提供了一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的客户端侧的用户行为验证的反作弊方法。根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算机设备具有与根据本发明第一和第二方面的方法和装置类似的有益效果,在此不再赘述。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是根据本发明实施例的服务器侧用户行为验证的反作弊方法的流程示意图;图2是根据本发明实施例的第一领奖码生成方法流程示意图;图3是根据本发明一个实施例的第二领奖码验证方法流程示意图;图4是根据本发明另一个实施例的第二领奖码验证方法流程示意图;图5是根据本发明又一个实施例的第二领奖码验证方法流程示意图;图6是根据本发明实施例的客户端侧用户行为验证的反作弊方法的流程示意图;图7是根据本发明实施例的服务器侧用户行为验证的反作弊装置的结构框图;图8是根据本发明实施例的服务器侧用户行为验证的反作弊装置的结构框图;图9是根据本发明实施例的用户行为验证的反作弊方法服务器侧和客户端侧的交互过程示意图;以及图10是根据本发明实施例的计算机设备的结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。目前,在绝大部分的互联网应用程序中,服务器与客户端的交互中一般仅进行用户身份认证,和防止用户账号的暴力破解作弊。例如在登录时,提供动态图片验证码,由用户进行视觉识别后输入进行验证操作,从而避免对账号和密码的暴力破解。但是,一旦用户登录之后,对后续交互过程则缺乏安全措施。为了推广应用占领市场,很多应用程序(例如,pc客户端和移动客户端app)为了鼓励用户安装和使用,会提供基于用户行为的奖励,例如,用户登录奖励,连续登录天数奖励,在线时长奖励,定时抢红包,商品点击秒杀等等。有奖励就有作弊,在利益驱动之下,已经涌现出各种方式来冒领和多领奖励,并且新的作弊方式也在不断创造之中。例如,通过截获用户发送到服务器的领奖请求信息,进行反向破解和大量复制来重复申领。如何判断用户行为是否是真实发生,服务器端接收的用户行为信息是否由实际的用户在客户端操作产生,是防止作弊的关键之一。本发明的主要目的之一即在于提供一种针对用户行为验证的反作弊手段。以保障真实用户的真实操作可以获得相应的奖励,而作弊行为可被有效的识别。而主要的思路在于,在领奖之前和领奖过程中,通过应用客户端和服务器端的后台交互,利用服务器端提供的领奖码来对用户行为进行认证,防止作弊。本发明中针对用户行为的反作弊,除了可以用于物质奖励的发放过程,也可以用于其它场景。在本申请中,“奖励”应做广义理解,不仅包括红包、卡券、现金、实物等直接利益的交付,也包括有效统计结果的构成、用户特定行为的认定等等。例如,某app的一项任务,要求用户进行若干操作。当用户执行这些操作行为后,认定“任务已经完成”,也可以视为是一种奖励。下面结合附图对本发明的具体实施方式进行详细的说明。本发明的方法在客户端侧和服务器侧分别执行相应的操作。图1是根据本发明实施例的服务器侧用户行为验证的反作弊方法的流程示意图。参见图1,用户行为验证的反作弊方法可包括步骤s100到s600。在步骤s100,接收客户端上传的用户行为信息。可以有基于各种不同形式的用户行为的领奖条件,也可以有各种不同的领奖的触发条件。例如,可以将用户的登录行为,连续登录天数满足预设条件,在线时长满足预设条件等作为领奖触发条件,并由服务器自动判断是否满足触发条件。或者,也可以以用户注定点击客户端的特定“领奖”按钮作为触发条件,根据用户的点击行为开启领奖过程。针对不同的触发形式,客户端上传的用户行为信息也可以有不同的形式。例如,所述接收客户端上传的用户行为信息可包括:接收客户端上传的用户名和用户登录时间信息。或者包括接收客户端上传的用户名和领奖请求信息等。在步骤s200,根据接收的用户行为信息进行分析,根据分析结果生成该用户的奖励信息,其中,当分析结果满足预设领奖条件时,生成第一领奖码,将第一领奖码加入所述奖励信息,并将所述第一领奖码的相关信息存储到服务器的有效领奖码集合。例如,第一种场景下,由服务器根据用户登录信息判断领奖条件,开启领奖过程。收客户端上传的用户行为信息可包括用户名和用户登录时间信息。此时,根据接收的用户行为信息进行分析可包括:根据当前接收的用户行为信息和累积接收的用户行为信息进行分析,获取用户的登录次数分布和/或登录时长分布;当用户的登录次数分布满足预设条件和/或登录时长分布满足预设条件时,生成第一领奖码。当预设条件不满足时,不反馈或者反馈领奖条件不满足的信息到客户端。换言之,此时奖励信息可以为空或者包含奖条件不满足的信息。在第二种场景下,根据用户的领奖请求开启领奖过程。此时,所述接收客户端上传的用户行为信息包括:接收客户端上传的用户名和领奖请求信息。根据接收的用户行为信息进行分析包括:判断该用户是否满足所述领奖请求所对应的奖励条件。当该用户是否满足所述领奖请求所对应的奖励条件时,生成第一领奖码。同样,当预设条件不满足时,不反馈或者反馈领奖条件不满足的信息到客户端。换言之,此时奖励信息可以为空或者包含奖条件不满足的信息。在反馈奖励信息时,为了进一步加强安全性,领奖条件满足时,所述奖励信息还可以包括验证码。以实现在客户端由用户输入验证码后才可领奖。所述验证码可采用目前相关技术中的一般形式,例如,4-8位的字符串或含有用于识别的4-8位字符串的图片验证码。为了达到更好的防作弊效果,第一领奖码可以设置为动态生成,一次一码的形式。即,每次满足领奖条件时产生的第一领奖码都是各不相同的。并且,为了防止作弊者截获领奖码后,通过反向破解获取领奖码的产生机制,从而伪造领奖码,领奖码在构造上选择不易被破解的形式。例如各种加密编码。换言之,可以用动态的非重复加密字符串来作为第一领奖码。加密秘钥可以根据每个用户账户(id)分别设置。同时,为了便于在后续步骤中的领奖码验证,加密的“种子”字符串可以选择时间相关的变量。并且对加密的后的结果进行便于网络传输的编码。服务器存储的有效领奖码集合可以按照不同用户进行标识,如此在进行用户领奖验证时,只需根据对应当前用户标识的有效领奖码集合进行验证即可,可以加快验证速度。参见图2,图2是根据本发明实施例的第一领奖码生成方法流程示意图。其中给出了一种具体的领奖码生成方法,该方法包括步骤s221到s223。在步骤s221,获取当前用户的用户秘钥。例如,可将当前用户的账号和预定义的字符串的组合作为用户秘钥。这样,用户秘钥可以存储在服务器中,也可以在获得用户账户的同时快速直接生成而节约秘钥查找的时间。在步骤s222,根据第一领奖码的生成时间获取对应的第一领奖码的时间戳,并用所述用户秘钥对时间戳进行加密,生成加密结果。加密可以使用各种现有的加密算法,本发明不做特殊要求。一些实施例中,为了防止恶意用户根据客户端进行反向破解,领奖码在客户端不进行任何解码操作。因此,使用对称加密算法即可,例如crc(循环冗余校验,cyclicredundancycheck)。时间戳(timestamp)是一种时间表示方式,是一种与具体时间点具有唯一对应关系的变量。可以取精确到秒,毫秒等不同的精确度。例如,当前时间的时间戳,可定义为从格林威治时间1970年01月01日00时00分00秒起至当前时间的总秒数。举例来说,时间2017/12/4,10:00:00对应的时间戳为1512352800。将领奖码生成时间的时间戳作为加密的“种子”参数,一方面便于获取,另一方面大部分情况下由于领奖码生成时间的唯一性,不同的时间戳加密后的领奖码重复的概率几乎为0。并且,如果为领奖操作设置时效,也便于利用时间戳计算领奖码的有效期间。在步骤s223,对加密结果进行第一编码,得到第一领奖码。进行第一编码可以是用于进一步增加破解难度,和/或者是便于网络传输。例如,第一编码可采用base64编码。base64是网络上最常见的用于传输8bit字节码的编码方式之一,是基于64个可打印字符来表示二进制数据的方法,可用于在http环境下传递较长的标识信息。在一些场景下,可能会在短时间内由大量的领奖请求,例如抢红包或者秒杀活动中,用户可能在1秒内多次请求领奖。而如果时间戳选择了精确到秒的话,此时单纯使用时间戳将无法区分1秒内的多此请求,这些请求可能会对应相同的第一领奖码。因此,当时间戳对应的最小的单位时间内需要生成多个领奖码时,可进一步为所述时间戳设置标识位,所述标识位表示单位时间内领奖码的生成顺序号,并将设置有标识位的时间戳用所述用户秘钥进行加密得到加密结果。并且,另一个好处是,在对客户端返回的领奖码进行验证时,可实现根据发送顺序进行验证。如此,对于恶意截获后大量重发,或者是用户使用外挂重发等作弊行为,其提供的领奖码的顺序很大概率是不能匹配服务器的领奖码生成顺序的,从而可以识别作弊行为。例如,根据本发明一个实施例的领奖码及时间戳如表1所示。表1用户序号领奖码时间戳用户111fdsfsldflj12312123lkjfd1512352861用户12asdljsdklf12fasd0u234231512352861用户13f3f48hf892fwdkjhwf222ks1512352862用户21weoiurwsoiu23kj234kj9f1512352811用户22iuywe982hkjsfsdoi203hs1512352821用户231231khsdfoi23h93kjnerw1512352832……………………在步骤s300,将奖励信息发送到客户端。领奖信息可以是定向发送到用户满足领奖条件的当前用户所登录的客户端。为了增加拦截难度,防止被非法截获,带有第一领奖码的奖励信息也可以经由相对安全的网络传输渠道(例如通过ssl等加密协议)传输到客户端。在步骤s400,接收客户端上传的领奖验证信息,从客户端上传的领奖验证信息中提取领奖码作为第二领奖码。对于正常的用户,由于客户端可设置为将接收的第一领奖码再次发送回服务器,因此,提取的第二领奖码与发送的第一领奖码应是相同的。而对于作弊情况,则服务器接收的领奖验证信息可能并不是由客户端直接发送,而是由作弊者构造的伪装信息,因此,提取的第二领奖码与服务器发送的第一验证码可能不同,故而需要第二验证码的有效性进行判定。在步骤s500,根据服务器存储的有效领奖码集合对所述领奖验证信息中提取的第二领奖码的有效性进行验证,得到验证结果。一种最基本的验证思路是:将第二领奖码与服务器存储的有效领奖码集合中的所有第一领奖码进行比较,当存在与第二领奖码匹配的第一领奖码时,验证结果为第二领奖码有效。针对第一领奖码的具体编码形式,可以有进一步的不同具体验证方式。图3是根据本发明另一个实施例的第二领奖码验证方法流程示意图,本实施例针对上述步骤s200中,对第一领奖码采用参照图2所述的方法进行构建的情况下,第二领奖码的验证。此实施例中,将第一领奖码的相关信息存储到服务器的有效领奖码集合时可包括:将第一领奖码的时间戳存储到服务器的有效领奖码集合。对领奖验证信息中提取的第二领奖码的有效性进行验证包括步骤s511到s514。在步骤s511,根据第一编码的逆运算对第二验证码进行解码,得到解码结果。在步骤s512,根据当前用户的用户秘钥对解码结果进行解密,得到解密结果,。在步骤s513,将解密结果与有效领奖码集合中的所有第一领奖码的时间戳进行比较。在步骤s514,当存在与解密结果匹配的第一领奖码的时间戳时,判定解密结果对应的第二领奖码与所述时间戳对应的第一领奖码匹配,验证结果为第二领奖码有效。在一些实施例中,可以进一步采用为领奖码设置时效性,或者将被验证过的领奖码(即对应已经领奖的情形)进行即时删除等手段进一步增强防作弊性能。图4是根据本发明另一个实施例的第二领奖码验证方法流程示意图。其中,验证过程包括步骤s521到s525。在步骤s521,将第二领奖码与服务器存储的有效领奖码集合中的所有第一领奖码进行比较。可以是通过领奖码的编码后的字符串进行直接比较,亦可以是解码后机密后就“种子参数”(例如时间戳)进行间接比较。当领奖码较长时,或者数量较多时,例如参照图2实施例的编码方式,就“种子参数”(例如时间戳)进行比较可以具有更高的效率。在步骤s522,判断是否存在与第二领奖码匹配的第一领奖码,是则执行步骤s523,否则执行s525。在步骤s523,判定第二领奖码有效。在步骤s524,所述有效领奖码集合中删除与所述第二领奖码匹配的第一领奖码及其相关信息。一旦出现对应有效的第二领奖码,领奖成功,意味着匹配的第一领奖码已经失效,从有效领奖码集合中删除可以提高后续的比较执行效率,更可以防止失效的领奖码被重复利用。在步骤s525,判定第二领奖码无效。在一些实施例中,可以为领奖码设置有效期。将第一验证码的生成时间和有效期存储在服务器的有效领奖码集合。对领奖验证信息中提取的第二领奖码进行验证则进一步包括失效验证的过程。参见图5,图5是根据本发明又一个实施例的第二领奖码验证方法流程示意图。本实施例的第二领奖码验证方法可包括步骤s531到s536。在步骤s531,将第二领奖码与服务器存储的有效领奖码集合中的所有第一领奖码进行比较。在步骤s532,判断是否存在与第二领奖码匹配的第一领奖码,是则执行步骤s533,否则执行s536。在步骤s533,当存在与第二领奖码匹配的第一领奖码时,进一步将第二领奖码的验证时间与匹配的第一验证码的生成时间进行比较。在步骤s534,判断所述第二领奖码的验证时间是否处于所述匹配的领奖码的有效期,处于有效期内则执行步骤s535,否则执行步骤s536。在步骤s535,判定验证结果为第二领奖码有效。在步骤s536,判定验证结果为第二领奖码无效。在一些实施例中,为了进一步增强安全性,只有按照第一领奖码的生成顺序返回的第二领奖码可以被认为是有效的。此时,将第一领奖码的相关信息存储到服务器的有效领奖码集合还包括:将第一领奖码的相关信息按照第一领奖码的生成顺序存储。对领奖验证信息中提取的第二领奖码进行验证还包括:将第二领奖码与有效领奖码集合中顺序最先的第一领奖码的相关信息进行比较,当所述第二领奖码与该顺序最先的第一领奖码匹配时,验证结果为第二领奖码有效;否则验证结果为第二领奖码无效。在步骤s600,将验证结果发送到客户端。当验证结果为第二领奖码的无效时,可发送不满足领奖条件等提示信息给客户端。当验证结果为第二领奖码的有效时,可发送领奖成功等提示信息给客户端。也可以同时发放奖励到用户账户。图6是根据本发明实施例的客户端侧用户行为验证的反作弊方法的流程示意图。客户端侧的反作弊方法包括步骤s100’到s500’。在步骤s100’,向服务器上传用户行为信息。根据不同的场景,所述用户行为信息可以包括用户名和用户登录时间信息,或者是包括用户名和领奖请求信息等。具体可参见结合图1对步骤s100的描述,不再重复赘述。在步骤s200’,接收服务器反馈的奖励信息,所述奖励信息为根据用户行为信息的分析结果生成。当分析结果满足预设领奖条件时,所述领奖信息包括第一领奖码。第一领奖码的具体构成可参见结合图1,图2对步骤s200的描述。在一些实施例中,除了第一领奖码之外,接收的服务器反馈的奖励信息还可以包括验证码。所述验证码为4-8位的字符串或含有用于识别的4-8位字符串的图片验证码。在步骤s300’,从所述奖励信息中提取第一领奖码,并生成领奖验证信息。生成领奖验证信息可以是客户端在收到服务器的奖励信息后自动生成,也可以是根据用户的具体操作行为生成。例如,用户点击“领奖”按钮,后生成领奖验证信息。一般来说,服务器端的信息是不容易获取的,而作弊者往往会通过分析客户端创造作弊方法,所以在客户端并不对第一领奖码进行处理。所述领奖验证信息直接包括所述第一领奖码即可。在步骤s400’,向服务器发送领奖验证信息。在步骤s500’,接收服务器反馈的验证结果,所述验证结果由服务器根据领奖验证信息生成。验证的过程可看见结合图1和图3-5对步骤s500的描述。使用本发明的用户行为验证的反作弊方法,在用户领奖过程中通过客户端与服务器的交互,在领奖准备阶段,基于用户行为由服务器生成具有唯一性的动态领奖码发送到客户端,领奖执行过程中再由客户端将领奖码反馈到服务器进行验证,实现对领奖行为的有效性的判定。从而可对来自非客户端的领奖请求进行有效识别,使伪造或截获重发的领奖请求等传统作弊方式无法实现,增加了作弊成本,有利于杜绝作弊行为。为了实现上述第一方面实施例中的方法,本发明第二方面的实施例提出了分别用于服务器侧和客户端侧的用户行为验证的反作弊装置。需要说明的是,前述对本发明的方法实施例的解释说明也适用于本发明的装置实施例,为避免冗余,在装置实施例中将不会对所有细节进行重复。未尽之处,本领域技术人员可以参见上述结合图1到图6对本发明方法实施例的相关描述。图7是根据本发明实施例的服务器侧用户行为验证的反作弊装置的结构框图。其中,所述服务器用户行为验证的反作弊装置100包括:第一信息接收模块110,奖励信息生成模块120,领奖码存储模块130,第一信息发送模块140,第二信息接收模块150,领奖码验证模块160和第二信息发送模块170。第一信息接收模块110用于接收客户端上传的用户行为信息。具体实现形式可参见结合图1对步骤s100的描述。奖励信息生成模块120用于根据接收的用户行为信息进行分析,根据分析结果生成该用户的奖励信息,其中,当分析结果满足预设领奖条件时,生成第一领奖码,将第一领奖码加入所述奖励信息,并将所述第一领奖码的相关信息存储到服务器的有效领奖码集合。具体实现形式可参见结合图1,图2对步骤s200的描述。具体地,所述奖励信息生成模块可包括:领奖条件判断单元,领奖码生成单元和奖励信息生成单元。领奖条件判断单元用于根据用户行为信息判定当前用户是否满足相应的预设领奖条件。领奖码生成单元,用于在当前用户是否满足相应领奖条件时生成领奖码。奖励信息生成单元用于根据领奖条件判断单元的判定结果和领奖码生成单元生成的领奖码生成奖励信息。在一些实施例中,所述领奖码生成单元生成领奖码包括:获取当前用户的用户秘钥;根据第一领奖码的生成时间获取对应的第一领奖码的时间戳,并用所述用户秘钥对时间戳进行加密,生成加密结果;对时间戳的加密结果进行第一编码,得到第一领奖码。相应地,所述奖励信息生成模块将第一领奖码的相关信息存储到服务器的有效领奖码集合包括:将第一领奖码的时间戳存储到服务器的有效领奖码集合。领奖码验证模块对领奖验证信息中提取的第二领奖码的有效性进行验证可包括:根据第一编码的逆运算对第二验证码进行解码,得到解码结果;根据当前用户的用户秘钥对解码结果进行解密,得到解密结果;将解密结果与有效领奖码集合中的所有第一领奖码的时间戳进行比较;当存在与解密结果匹配的第一领奖码的时间戳时,判定解密结果对应的第二领奖码与时间戳对应的第一领奖码匹配,验证结果为第二领奖码有效。领奖码存储模块130用于存储有效领奖码集合。第一信息发送模块140用于将奖励信息发送到客户端。具体实现形式可参见结合图1对步骤s300的描述。第二信息接收模块150,用于接收客户端上传的领奖验证信息,从客户端上传的领奖验证信息中提取领奖码作为第二领奖码。具体实现形式可参见结合图1对步骤s400的描述。领奖码验证模块160,用于根据服务器存储的有效领奖码集合对所述领奖验证信息中提取的第二领奖码的有效性进行验证,得到验证结果。具体实现形式可参见结合图1,图3-5对步骤s500的描述。第二信息发送模块170,用于将验证结果发送到客户端。具体实现形式可参见结合图1对步骤s600的描述。图8是根据本发明实施例的服务器侧用户行为验证的反作弊装置的结构框图。其中,客户端侧的用户行为验证的反作弊装置200包括第三信息发送模块210,第三信息接收模块220,信息处理模块230,第四信息发送模块240,和第四信息接收模块250。第三信息发送模块210用于向服务器上传用户行为信息。第三信息接收模块220用于接收服务器反馈的奖励信息,所述奖励信息为根据用户行为信息的分析结果生成,当分析结果满足预设领奖条件时,所述领奖信息包括第一领奖码。信息处理模块230用于从所述奖励信息中提取第一领奖码,并生成包括所述第一领奖码的领奖验证信息。第四信息发送模块240用于向服务器发送领奖验证信息。第四信息接收模块250用于接收服务器反馈的验证结果,所述验证结果由服务器根据领奖验证信息生成。关于各个模块的具体实现形式可以参见方法实施例的描述。使用本发明的用户行为验证的反作弊装置,在用户领奖过程中通过客户端与服务器的交互,在领奖准备阶段,基于用户行为由服务器生成具有唯一性的动态领奖码发送到客户端,领奖执行过程中再由客户端将领奖码反馈到服务器进行验证,实现对领奖行为的有效性的判定。从而可对来自非客户端的领奖请求进行有效识别,使伪造或截获重发的领奖请求等传统作弊方式无法实现,增加了作弊成本,有利于杜绝作弊行为。图9是根据本发明实施例的用户行为验证的反作弊方法服务器侧和客户端侧的交互过程示意图。在领奖前的准备阶段,由客户端上传用户行为信息到服务器端,服务器端根据用户信息(包括客户端上传的用户行为信息和累积的用户行为记录)进行分析,判断用户是否满足特定的领奖条件。并在用户满足领奖条件时,生成领奖码并将领奖码存储在服务器(由服务器端生成的领奖码命名为第一领奖码)。之后服务器端将领奖码返回到客户端。在领奖过程中,客户端向服务器端提交领奖验证信息,领奖验证信息包括接收的第一领奖码。服务器接收到领奖验证信息后,进行领奖验证。从客户端的领奖验证信息中提取领奖码(提取的领奖码命名为第二领奖码),并通过第二领奖码与存储的第一领奖码进行对比来进行第二领奖码有效性地验证。根据第二领奖码的有效与否,生成领奖结果。最后将领奖结果返回到客户端。完成领奖过程。本发明第三方面的实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现根据本发明的服务器侧的用户行为验证的反作弊方法。本发明第三方面的实施例还提供了另一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明的客户端侧的用户行为验证的反作弊方法。一般来说,用于实现本发明方法的计算机指令的可以采用一个或多个计算机可读的介质的任意组合来承载。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。所谓非临时性计算机可读介质可以包括任何计算机可读介质,除了临时性地传播中的信号本身。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本发明第四方面的实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面实施例所述的客户端侧的用户行为验证的反作弊方法。本发明第四方面的实施例还提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面实施例所述的服务器侧的用户行为验证的反作弊方法。本发明第五方面实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的服务器侧用户行为验证的反作弊方法。本发明第五方面实施例还提供了另一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的客户端侧用户行为验证的反作弊方法。根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算机设备,可以参照根据本发明第一方面实施例具体描述的内容实现,并具有与根据本发明第一方面的方法类似的有益效果,在此不再赘述。图10示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图10显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。如图10所示,计算机设备12可以通用计算设备的形式实现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机可读存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。要说明的是,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属
技术领域
的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。本
技术领域
的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。尽管上面已经示出和描述了本发明的实施例,应当理解的是,上述实施例是示例性的,不能解释为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1