发明内容
为解决上述问题,本发明提出了一种客户端认证方法、装置、设备和存储介质,能够有效识别出非法客户端,避免黑客攻击,为提升了安全性。
第一方面,本申请实施例提供一种客户端认证方法,包括:
接收到目标客户端的访问请求,所述访问请求中携带有目标客户端的目标唯一标识;
确定与目标唯一标识相对应的目标特征值;其中,所述目标特征值属于合法特征值或非法特征值,合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;
对所述目标特征值进行自增处理,得到新目标特征值,其中,自增处理后得到的新目标特征值大于自增处理前的目标特征值;
判断新目标特征值是否大于预设阈值,其中,预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值;
基于判断结果确定目标客户端是否属于合法客户端;其中,若基于判断结果确定出新目标特征值大于预设阈值,则目标客户端属于合法客户端。
在一具体实施例中,所述确定与目标唯一标识相对应的目标特征值,包括:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一合法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值。
在一具体实施例中,所述方法还包括:
接收到针对至少一个合法客户端的查询请求;所述查询请求携带有至少一个合法客户端的唯一标识,并用于请求确定合法客户端是否处于目标状态;
基于查询请求确定出合法客户端处于目标状态后,基于处于目标状态的合法客户端的唯一标识得到处于目标状态的合法客户端的身份标识,使得利用身份标识能够唯一确定出合法客户端,以及为处于目标状态的合法客户端设置初始合法特征值;其中,初始合法特征值至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;
至少基于处于目标状态的合法客户端的身份标识及设置的初始合法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述确定与目标唯一标识相对应的目标特征值,包括:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一非法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系,以及非法客户端的身份标识与非法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端或非法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
在一具体实施例中,所述方法还包括:
接收到非法客户端的访问请求,所述访问请求中携带有非法客户端的唯一标识;
基于非法客户端的唯一标识得到非法客户端的身份标识,使得利用身份标识能够唯一确定出非法客户端,以及为非法客户端设置初始非法特征值,其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;
至少基于非法客户端的身份标识及设置的初始非法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述对所述目标特征值进行自增处理,得到新目标特征值后,所述方法还包括:
更新预设标识库,使得与目标客户端相匹配的第一身份标识所对应的特征值更新为新目标特征值。
在一具体实施例中,所述确定与目标唯一标识相对应的目标特征值,包括:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定不存在与所述目标唯一标识相匹配的第一身份标识后,为目标唯一标识设置初始非法特征值,并将设置的初始非法特征值作为目标唯一标识相对应的目标特征值;其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
第二方面,本申请实施例提供一种客户端认证装置,包括:
接收单元,用于接收到目标客户端的访问请求,所述访问请求中携带有目标客户端的目标唯一标识;
处理单元,用于确定与目标唯一标识相对应的目标特征值;其中,所述目标特征值属于合法特征值或非法特征值,合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;对所述目标特征值进行自增处理,得到新目标特征值,其中,自增处理后得到的新目标特征值大于自增处理前的目标特征值;判断新目标特征值是否大于预设阈值,其中,预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值;基于判断结果确定目标客户端是否属于合法客户端;其中,若基于判断结果确定出新目标特征值大于预设阈值,则目标客户端属于合法客户端。
在一具体实施例中,所述处理单元,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一合法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值。
在一具体实施例中,所述接收单元,还用于接收到针对至少一个合法客户端的查询请求;所述查询请求携带有至少一个合法客户端的唯一标识,并用于请求确定合法客户端是否处于目标状态;
所述处理单元,还用于基于查询请求确定出合法客户端处于目标状态后,基于处于目标状态的合法客户端的唯一标识得到处于目标状态的合法客户端的身份标识,使得利用身份标识能够唯一确定出合法客户端,以及为处于目标状态的合法客户端设置初始合法特征值;其中,初始合法特征值至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;至少基于处于目标状态的合法客户端的身份标识及设置的初始合法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述处理单元,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一非法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系,以及非法客户端的身份标识与非法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端或非法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
在一具体实施例中,所述接收单元,还用于接收到非法客户端的访问请求,所述访问请求中携带有非法客户端的唯一标识;
所述处理单元,还用于基于非法客户端的唯一标识得到非法客户端的身份标识,使得利用身份标识能够唯一确定出非法客户端,以及为非法客户端设置初始非法特征值,其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;至少基于非法客户端的身份标识及设置的初始非法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述处理单元,还用于对所述目标特征值进行自增处理,得到新目标特征值后,更新预设标识库,使得与目标客户端相匹配的第一身份标识所对应的特征值更新为新目标特征值。
在一具体实施例中,所述处理单元,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定不存在与所述目标唯一标识相匹配的第一身份标识后,为目标唯一标识设置初始非法特征值,并将设置的初始非法特征值作为目标唯一标识相对应的目标特征值;其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
第三方面,本申请实施例提供一种客户端认证设备,包括:
一个或多个处理器;
与所述一个或多个处理器通信连接的存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序被配置为执行以上所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现以上所述的方法。
这样,由于本申请方案能够预先为确定出的合法客户端设置身份标识及合法特征值,且合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,还能够预先设置预设阈值,且预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值;所以,当接收到目标客户端的访问请求,并基于目标客户端所对应的目标特征值进行自增处理后,能够基于自增处理后得到的新目标特征值与预设阈值之间的大小关系,来识别出目标客户端是否属于合法客户端,进而识别出目标客户端的访问请求为合法请求或非法请求,如此,能够有效避免黑客攻击,提升了安全性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
本申请实施例提供了一种客户端认证方法、装置、设备和存储介质;具体地,图1为本发明实施例客户端认证方法的实现流程示意图,如图1所示,所述方法包括:
步骤101:客户端认证装置接收到目标客户端的访问请求,所述访问请求中携带有目标客户端的目标唯一标识。
在一具体示例中,合法客户端的访问请求是合法客户端触发自身接收到的访问链接后而发送至客户端认证装置的,或者是非法客户端对访问链接(比如,截获的其他合法客户端所接收到的访问链接)进行代码修改等hack行为后发送至客户端认证装置的。举例来说,访问请求可以为奖励领取请求;奖励领取请求为目标客户端基于接收到的奖励领取链接而触发生成,或者,为目标客户端通过对奖励领取链接(比如,截获的其他合法客户端接收到的奖励领取链接)进行代码修改等hack行为后所生成的非法请求;比如,当奖励领取请求是基于接收到的奖励领取链接而触发生成的,此时,目标客户端为合法客户端,而当奖励领取链接是被hack行为等修改后所生成的非法请求,此时,目标客户端为非法客户端,而本申请方案正是为识别hack行为等非法访问而设置的。
步骤102:客户端认证装置确定与目标唯一标识相对应的目标特征值;其中,所述目标特征值属于合法特征值或非法特征值,合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
需要说明的是,合法特征值比所有合法客户端中每一客户端在预设时段内的最大访问量均大,同时,也比所有非法客户端中每个客户端在预设时段内的最大访问量均大,也就是说,合法特征值比所有合法客户端在预设时段内的所有最大访问量的最大值都大,以及比所有非法客户端在预设时段内的所有最大访问量中的最大值都大。非法特征值小于或等于所有合法客户端在预设时间段内的所有最小访问量中的最小值,比如,为0。
步骤103:客户端认证装置对所述目标特征值进行自增处理,得到新目标特征值,其中,自增处理后得到的新目标特征值大于自增处理前的目标特征值。
这里,实际应用中自增处理可以具体采用Incr命令,即对目标特征值进行加1处理,使得新目标特征值比自增处理前的目标特征值大1。
步骤104:客户端认证装置判断新目标特征值是否大于预设阈值,其中,预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值。
这里,实际应用中,预设阈值可以具体为固定值,而且,不同客户端对应的预设阈值可以相同,当然,不同客户端对应的预设阈值也可以不同,此时,只需要额外维护客户端与预设阈值之间的映射关系表即可确定出客户端所对应的预设阈值,比如,预设阈值为客户端的唯一标识,通常唯一标识为64位,表征的数值远远大于所有合法客户端以及所有非法客户端的最大访问量;而又由于预设阈值小于或等于所有合法客户端的最小合法特征值,此时,设置的最小合法特征值也可以具体为客户端的唯一标识,如此,合法客户端的目标特征值在进行自增处理后必然大于预设阈值,经本申请方案验证后必然为合法客户端,而非法客户端的目标特征值即便在自增处理后也必然小于预设阈值,经本申请方案验证后必然为非法客户端。
步骤105:客户端认证装置基于判断结果确定目标客户端是否属于合法客户端;这里,若基于判断结果确定出新目标特征值大于预设阈值,则说明目标客户端属于合法客户端,否则,属于非法客户端。
本实施例中,为有效识别目标客户端为合法客户端或非法客户端,本示例可以预先设置预设标识库,所述预设标识库中存储有特征值与身份标识的映射关系,而且,身份标识为与客户端的唯一标识相关的信息,比如,基于客户端的唯一标识生成客户端的身份标识,进而利用身份标识确定出唯一的客户端;具体地,采用如下方式生成预设标识库:
方式一:
步骤1-1:客户端认证装置接收到针对至少一个合法客户端的查询请求;所述查询请求携带有至少一个合法客户端的唯一标识,并用于请求确定合法客户端是否处于目标状态。在一具体示例中,访问请求具体为奖励领取请求,目标状态具体为奖励未领取状态;此时,本申请方案可以仅对未领取奖励的客户端设置特征值,也即处于目标状态的合法客户端设置合法特征值。
这里,需要说明的是,客户端认证装置接收到的查询请求并非为客户端所发送的,而是其他装置或服务器在确定为合法客户端后,为查询确定的合法客户端是否处于目标状态而发送至客户端认证装置的。
步骤1-2:客户端认证装置基于查询请求确定出合法客户端处于目标状态后,基于处于目标状态的合法客户端的唯一标识得到处于目标状态的合法客户端的身份标识,使得利用得到的身份标识能够唯一确定出合法客户端,以及为处于目标状态的合法客户端设置初始合法特征值;其中,初始合法特征值至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值。
这里,客户端认证装置基于查询请求确定出处于目标状态的合法客户端后,其他装置或服务器或者客户端认证装置会向处于目标状态(比如处于奖励未领取状态)的合法客户端发送访问链接(比如奖励领取链接),随后,客户端认证装置会接收到合法客户端触发访问链接后所发送的访问请求,和/或,接收到非法客户端对访问链接(比如,截获的其他合法客户端所接收到的访问链接)进行代码修改等hack行为后所发送的访问请求(非法客户端hack行为等所发送的访问请求为非法请求)。这里,由于客户端认证装置会预先为处于目标状态的合法客户端设置身份标识和合法特征值,所以,当能够确定出目标客户端的目标特征值,且目标特征值满足合法特征值的要求(也即至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值)后,目标客户端的目标特征值在进行自增处理后的数值必然会大于预设阈值,如此,实现有效识别出合法客户端的目的。
这里,需要说明的是,实际应用中,并非查询请求对应的所有合法客户端均处于目标状态,此时,本申请方案仅为处于目标状态的合法客户端设置合法特征值,而对未处于目标状态的合法客户端不作处理。
这里,初始合法特征值比所有合法客户端中每一客户端在预设时段内的最大访问量均大,同时,也比所有非法客户端中每个客户端在预设时段内的最大访问量均大,也就是说,初始合法特征值比所有合法客户端在预设时段内的所有最大访问量的最大值都大。
实际应用中,初始合法特征值会随着自增处理而更新,比如,更新为自增处理后的值。
步骤1-3:客户端认证装置至少基于处于目标状态的合法客户端的身份标识及设置的初始合法特征值之间的映射关系,得到预设标识库。
在一具体示例中,合法客户端的身份标识可以对应key,初始合法特征值可以对应Value,此时,客户端认证装置中维护的映射关系以(身份标识、初始合法特征值)形式存在,如此,基于身份标识即可确定出初始合法特征值,当然,实际场景中,初始合法特征值会随着自增处理而更新,比如,更新为自增处理后的值,而身份标识固定不变,且不同合法客户端的身份标识不同,即合法客户端与身份标识一一对应;但是,不同合法客户端的初始Value值(也即初始合法特征值)可以相同也可以不相同。
实际应用中,为简单起见,初始合法特征值可以设置为合法客户端对应的唯一标识,此时,由于不同客户端的唯一标识不同,所以使得不同合法客户端的初始合法特征值也不同。
在一示例中,在形成预设标识库后,步骤102中所述确定与目标唯一标识相对应的目标特征值,包括:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一合法特征值作为所述目标特征值。这里,所述预设标识库中至少存储有合法客户端的身份标识与合法特征值(可能为初始合法特征值,也可以为对初始合法特征值进行自增处理后的值)的映射关系;其中,利用身份标识能够确定出唯一的合法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值。
本申请方案中,由于预设标识库中的身份标识是基于唯一标识而得到的,所以,在得到目标唯一标识后,即可向预设标识库中查找是否存在与目标唯一标识相匹配也即相同的第一身份标识;又由于预设标识库中维护有身份标识与特征值之间的映射关系,所以,确定预设标识库中存在第一身份标识后,即可确定出第一身份标识对应的第一合法特征值,进而将第一合法特征值作为目标特征值。
这里,由于目标特征值为第一合法特征值,且第一合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,进而当第一合法特征值进行自增处理后得到的新第一合法特征值又必然大于处理前的第一合法特征值,当将新第一合法特征值(也即新目标特征值)与预设阈值进行比较后,新第一合法特征值也必然大于预设阈值(因为预设阈值为小于最小合法特征值的数值),如此,可以确定出目标客户端为合法客户端,相应地,目标客户端的访问请求为合法请求。
方式二:在基于上述方式一建立完成预设标识库后,或者,在基于上述方式一建立预设标识库的同时,本申请方案还可以为访问的非法客户端设置特征值,这里,需要说明的是,方式一和方式二为并行执行的步骤,两者执行顺序不作限制,即可以先执行完成方式一的步骤后,执行方式二的步骤,或者,在执行方式一的步骤过程中执行方式二的步骤,或者在执行方式二的步骤过程中执行方式一的步骤。具体为访问的非法客户端设置特征值的步骤包括:
步骤2-1:客户端认证装置接收到非法客户端的访问请求,所述访问请求中携带有非法客户端的唯一标识。
这里,在一具体示例中,访问请求可以为奖励领取请求;而非法客户端的奖励领取请求可以具体为非法客户端通过对奖励领取链接进行代码修改等hack行为后所生成的非法请求。
这里,客户端认证装置基于查询请求确定出处于目标状态的合法客户端后,其他装置或服务器或者客户端认证装置会向处于目标状态(比如处于奖励未领取状态)的合法客户端发送访问链接(比如奖励领取链接),随后,客户端认证装置会接收到合法客户端触发访问链接后所发送的访问请求,和/或,接收到非法客户端对访问链接(比如,截获的其他合法客户端所接收到的访问链接)进行代码修改等hack行为后所发送的访问请求(非法客户端hack行为等所发送的访问请求为非法请求)。
步骤2-2:客户端认证装置基于非法客户端的唯一标识得到非法客户端的身份标识,使得利用身份标识能够唯一确定出非法客户端,以及为非法客户端设置初始非法特征值,其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
这里,由于客户端认证装置会预先为处于目标状态的合法客户端设置身份标识和合法特征值,所以,当能够确定出目标客户端的目标特征值,且目标特征值满足合法特征值的要求(也即至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值)后,目标客户端的目标特征值在进行自增处理后的数值必然会大于预设阈值,如此,实现有效识别出合法客户端的目的;而又由于客户端认证装置还会为曾经访问过的非法客户端设置身份标识和非法特征值,所以,即便能够确定出目标客户端的目标特征值,若目标特征值满足非法特征值的要求(也即为小于或等于所有合法客户端在预设时间段内的最小访问量的数值)后,则目标客户端的目标特征值在进行自增处理后的数值必然会小于预设阈值,如此,实现了有效识别出非法客户端的目的。
这里,初始非法特征值比所有合法客户端中每一客户端在预设时段内的最小访问量均小,也就是说,初始非法特征值比所有合法客户端在预设时段内的所有最小访问量的最小值都小,比如,为0。
实际应用中,初始非法特征值会随着自增处理而更新,比如,更新为自增处理后的值。
步骤2-3:客户端认证装置至少基于非法客户端的身份标识及设置的初始非法特征值之间的映射关系,得到预设标识库。
在一具体示例中,非法客户端的身份标识可以对应key,初始非法特征值可以对应Value,此时,客户端认证装置中维护的映射关系还以(身份标识、初始合法特征值)形式存在,如此,基于身份标识即可确定出初始非法特征值,当然,实际场景中,初始非法特征值会随着自增处理而更新,比如,更新为自增处理后的值,而身份标识固定不变,且不同非法客户端的身份标识不同,即非法客户端与身份标识一一对应;但是,不同非法客户端的初始Value值(也即初始非法特征值)可以相同(比如均为0)也可以不相同。实际应用中,为简单起见,初始非法特征值均设置为0。
在一示例中,在形成预设标识库后,步骤102中所述确定与目标唯一标识相对应的目标特征值,还可以包括:
客户端认证装置判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
客户端认证装置确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一非法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值(可能为初始合法特征值,也可以为对初始合法特征值进行自增处理后的值)的映射关系,以及非法客户端的身份标识与非法特征值(可能为初始非法特征值,也可以为对初始非法特征值进行自增处理后的值)的映射关系;其中,利用身份标识能够确定出唯一的合法客户端或非法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
本申请方案中,由于预设标识库中的身份标识是基于唯一标识而得到的,所以,在得到目标唯一标识后,即可向预设标识库中查找是否存在与目标唯一标识相匹配也即相同的第一身份标识;又由于预设标识库中维护有身份标识与特征值之间的映射关系,所以,确定预设标识库中存在第一身份标识后,即可确定出第一身份标识对应的第一非法特征值,进而将第一非法特征值作为目标特征值。
这里,由于目标特征值为第一非法特征值,且第一非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值,进而即便在第一非法特征值进行自增处理后得到的新第一非法特征值后,新第一非法特征值(也即新目标特征值)也小于预设阈值(因为预设阈值至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量),如此,可以确定出目标客户端为非法客户端,相应地,目标客户端的访问请求为非法请求。
在另一具体示例中,预设标识库中还可能并未对应有与目标唯一标识相对应的第一身份标识,也就是说,目标客户端为首次访问客户端认证装置,此时,步骤102中所述确定与目标唯一标识相对应的目标特征值,可以具体为:
客户端认证装置判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;客户端认证装置确定不存在与所述目标唯一标识相匹配的第一身份标识后,为目标唯一标识设置初始非法特征值,并将设置的初始非法特征值作为目标唯一标识相对应的目标特征值;其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
实际应用中,客户端认证装置还会为首次访问的非法客户端设置身份标识和初始非法特征值,这里,由于合法客户端的访问请求是合法客户端触发自身接收到的访问链接后而发送至客户端认证装置的,而且,客户端认证装置中已经预先为确定的合法客户端(处于目标状态的合法客户端)设置有身份标识和合法特征值,所以,当客户端认证装置中查询不到目标客户端的身份标识时,即可认定目标客户端为非法客户端,且目标客户端的访问请求为非法请求(即截获其他合法客户端所接收到的访问链接,并对访问链接进行代码修改等hack行为后所生成的),且为首次访问的非法客户端,此时,为非法客户端设置身份标识和初始非法特征值,同时,使得初始非法特征值满足非法特征值要求。
这里,实际应用中,在对所述目标特征值进行自增处理,得到新目标特征值后,还会进行更新,具体地,更新预设标识库,使得与目标客户端相匹配的第一身份标识所对应的特征值(比如合法特征值或非法特征值)更新为新目标特征值。
这样,由于本申请方案能够预先为确定出的合法客户端设置身份标识及合法特征值,且合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,还能够预先设置预设阈值,且预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值;所以,当接收到目标客户端的访问请求,并基于目标客户端所对应的目标特征值进行自增处理后,能够基于自增处理后得到的新目标特征值与预设阈值之间的大小关系,来识别出目标客户端是否属于合法客户端,进而识别出目标客户端的访问请求为合法请求或非法请求,如此,能够有效避免黑客攻击,提升了安全性。
以下结合具体应用场景,对本申请实施例做进一步详细说明,具体地,如图2所示,本示例使用微服务系统架构,其中,服务A离线,使用的是离线的历史数据;而服务B(也即本申请方案所述的客户端认证装置)在线,使用的是实时数据;这里,服务B提供奖励领取服务(比如记录客户端的奖励领取情况,以及处理客户端的奖励领取请求),以及存储服务(如存储预设标识库)和查询服务(如查询客户端是否处于奖励未领取状态)。服务A负责给服务B确定出的客户端下发奖励领取请求。这里,需要说明的是,服务A和服务B逻辑上独立,即服务A和服务B可以部署于同一装置或服务器上,也可以部署在不同的装置或服务器上。本申请方案以上所述的客户端认证装置对应本示例中的服务B。
具体流程如下:
步骤1:服务A确定出待发送奖励领取请求的多个合法客户端,并访问服务B以查询确定出的多个合法客户端的奖励领取情况,也即是否领取过奖励。
步骤2:服务B确定出多个合法客户端未领取过奖励后,将确定出的未领取过奖励的多个合法客户端告知服务A。
步骤3:服务A向未领取过奖励的多个合法客户端下发奖励领取链接。
步骤4:接收到奖励领取链接的合法客户端点击该奖励领取链接后,向服务B发送奖励领取请求。
步骤5:服务B接收到奖励领取请求,判断是否为奖励领取请求对应的客户端提供奖励领取服务。
这里,服务B接收奖励领取请求的客户端可能为合法客户端,即该奖励领取请求是接收到奖励领取链接的合法客户端所发送的;或者为非法客户端,即该奖励领取请求是非法客户端截获其他合法客户端所接收到的奖励领取链接并进行代码修改等hack行为后所发送的,因此,服务B需要判断是否为奖励领取请求所对应的客户端提供奖励领取服务。
这里,为了防止黑客在客户端(也即本申请所述的非法客户端)上伪造奖励领取请求而直接访问服务B获取奖励,在服务A访问服务B的时候,也即上述步骤2,在服务B确定出的未领取过奖励的多个合法客户端后,服务B会为未领取过奖励的多个合法客户端设置一个key(也即本申请所述的身份标识),以及相应的Value(也即本申请所述的合法特征值),并存储于Redis中;在服务B接收到客户端发送的领取奖励请求后,会校验是否存在与领取奖励请求所对应的key,如果不存在,则认为该领取奖励请求是非法的,就直接拒绝掉。
表面上看,这个设计是合理的,但在测试过程中,发现Redis有主从延迟的问题,因为服务B为客户端设置key和Value并写入Redis中的时候,是向Redis中的主cluster写入的,但客户端领取奖励的时候,服务B是从Redis的从库读取的来验证的,一旦有主从延迟,在客户端领取奖励的时候,就会存在读不到相应的key的情况,导致原本正常客户端的请求,也会认为被认为是非法的。
因此,为了解决上述问题,在客户端领取奖励的时候,改用redis的setnx命令(该setnx命令均读写主库,不会读写从库),该setnx命令会保证读写主库,能够准确地识别奖励领取请求对应的key是否存在。如果存在,则说明请求合法;不存在,则说明请求非法,此时,会把这个非法请求对应的客户端唯一标识作为key写入Redis中。但这又带来另一个问题:针对一个非法客户端而言,在服务B第一次接收到非法客户端的奖励领取链接后,会得出该客户端为非法的,但是,在当用户重试一次后,也即服务B第二次及以后接收到非法客户端的奖励领取链接,由于已经将非法请求对应的客户端唯一标识作为key写入Redis中,所以,此时,会得出非法客户端合法的结论,也就是存在接口是不幂等的情况,该原因是由于setnx命令的性质所导致的。
进一步地,为了解决接口不幂等的问题,本申请在服务A访问服务B时,服务B会为处于奖励未领取状态的合法客户端设置key及Value,且设置的Value为一个非常大的数,该非常大的数是一个远远大于正常访问量的数,比如,10000000,或者,直接将Value设置为唯一标识(通常为64位,表征的数值远远大于正常访问量),同时,将设置的非常大的数作为预设阈值,该预设阈值固定不变,但Value值会随着自增处理而实时更新;以及,在客户端领取奖励的时候服务B使用Redis的Incr命令(也即自增处理命令)对奖励领取请求所对应的Value进行加1处理;这样,若客户端为合法客户端,则Incr命令处理后的Value必然大于预设阈值,而若客户端非法,则Incr命令处理后的Value必然小于预设阈值,触发非法客户端的访问量大于固定的预设阈值,而显然,正常状态下,由于预设阈值为一个非常大的数,即便非法客户端也难以达到这样的访问量。
因此,本申请方案在有效防止黑客在客户端上伪造奖励领取请求而成功领取奖励的基础上,实现了接口的幂等问题,进而提升了系统的安全性。
本申请实施例还提供了一种客户端认证装置,如图3所示,所述装置包括:
接收单元31,用于接收到目标客户端的访问请求,所述访问请求中携带有目标客户端的目标唯一标识;
处理单元32,用于确定与目标唯一标识相对应的目标特征值;其中,所述目标特征值属于合法特征值或非法特征值,合法特征值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值,非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;对所述目标特征值进行自增处理,得到新目标特征值,其中,自增处理后得到的新目标特征值大于自增处理前的目标特征值;判断新目标特征值是否大于预设阈值,其中,预设阈值为至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量,且小于或等于所有合法客户端的最小合法特征值的数值;基于判断结果确定目标客户端是否属于合法客户端;其中,若基于判断结果确定出新目标特征值大于预设阈值,则目标客户端属于合法客户端。
在一具体实施例中,所述处理单元32,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一合法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值。
在一具体实施例中,所述接收单元31,还用于接收到针对至少一个合法客户端的查询请求;所述查询请求携带有至少一个合法客户端的唯一标识,并用于请求确定合法客户端是否处于目标状态;
所述处理单元32,还用于基于查询请求确定出合法客户端处于目标状态后,基于处于目标状态的合法客户端的唯一标识得到处于目标状态的合法客户端的身份标识,使得利用身份标识能够唯一确定出合法客户端,以及为处于目标状态的合法客户端设置初始合法特征值;其中,初始合法特征值至少大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;至少基于处于目标状态的合法客户端的身份标识及设置的初始合法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述处理单元32,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定存在与所述目标唯一标识相匹配的第一身份标识后,将预设标识库中与所述第一身份标识对应的第一非法特征值作为所述目标特征值;所述预设标识库中至少存储有合法客户端的身份标识与合法特征值的映射关系,以及非法客户端的身份标识与非法特征值的映射关系;其中,利用身份标识能够确定出唯一的合法客户端或非法客户端,合法特征值为大于所有合法客户端以及所有非法客户端在预设时段内的最大访问量的数值;非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
在一具体实施例中,所述接收单元31,还用于接收到非法客户端的访问请求,所述访问请求中携带有非法客户端的唯一标识;
所述处理单元32,还用于基于非法客户端的唯一标识得到非法客户端的身份标识,使得利用身份标识能够唯一确定出非法客户端,以及为非法客户端设置初始非法特征值,其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值;至少基于非法客户端的身份标识及设置的初始非法特征值之间的映射关系,得到预设标识库。
在一具体实施例中,所述处理单元32,还用于对所述目标特征值进行自增处理,得到新目标特征值后,更新预设标识库,使得与目标客户端相匹配的第一身份标识所对应的特征值更新为新目标特征值。
在一具体实施例中,所述处理单元32,还用于:
判断预设标识库中是否存在与所述目标唯一标识相匹配的第一身份标识;
确定不存在与所述目标唯一标识相匹配的第一身份标识后,为目标唯一标识设置初始非法特征值,并将设置的初始非法特征值作为目标唯一标识相对应的目标特征值;其中,初始非法特征值为小于或等于所有合法客户端在预设时间段内的最小访问量的数值。
这里需要指出的是:以上装置实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
本申请实施例还提供了一种客户端认证设备,包括:一个或多个处理器;与所述一个或多个处理器通信连接的存储器;一个或多个应用程序;其中,所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序被配置为执行以上所述的方法。
在一具体示例中,本申请实施例所述的客户端认证设备可具体为如图4所示的结构,所述客户端认证设备至少包括处理器41、存储介质42以及至少一个外部通信接口43;所述处理器41、存储介质42以及外部通信接口43均通过总线44连接。所述处理器41可为微处理器、中央处理器、数字信号处理器或可编程逻辑阵列等具有处理功能的电子元器件。所述存储介质中存储有计算机可执行代码,所述计算机可执行代码能够执行以上任一实施例所述的方法。在实际应用中,所述接收单元31以及处理单元32均可以通过所述处理器41实现。
这里需要指出的是:以上客户端认证设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明客户端认证设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现以上所述的方法。
这里,计算机可读存储介质可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
上述所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。