CN114329515A - 防止流程跳转的数据校验方法 - Google Patents
防止流程跳转的数据校验方法 Download PDFInfo
- Publication number
- CN114329515A CN114329515A CN202111466951.4A CN202111466951A CN114329515A CN 114329515 A CN114329515 A CN 114329515A CN 202111466951 A CN202111466951 A CN 202111466951A CN 114329515 A CN114329515 A CN 114329515A
- Authority
- CN
- China
- Prior art keywords
- random number
- access address
- interface
- configuration data
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种防止流程跳转的数据校验方法。其中,该方法包括:接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验。本申请解决了由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种防止流程跳转的数据校验方法。
背景技术
数据在网络传输,如果客户端的发出来数据不经过处理,数据一旦被中途截取到,例如,通过常用的抓包软件,Charles或者Fiddler都能直接解析拿到客户端的请求数据,例如解析得到用户名以及密码等等,并通过篡改后可再将数据发送给服务端,这样则会照成严重的安全隐患。
相关技术中,通常会对数据进行保护,一般对数据采用的保护方法包括:使用签名、防止重放攻击等。具体地,使用签名就是使用密钥对传递的参数进行签名,可以对请求的身份进行验证,但这种方式不能阻止重放攻击,即攻击者截获请求后,不对请求进行任何调整,直接使用截获的内容重新高频率多次数的向服务端发送该请求。而防止重放攻击一套有效防止重放攻击的方法,则是可开启API网关的防重放,通过这种签名认证方式,每个请求只能被使用一次,从而防止重放。具体地,这种签名认证方式为基于请求内容计算的数字签名,用于API网关识别用户身份,具体地,客户端调用API时,需要在请求中添加计算的签名,API网关在收到请求后会使用同样的方法计算签名,同用户计算的签名进行比较,相同则验证通过,不同则认证失败。
防止重放攻击虽然能阻止相同的请求多次被调用的问题,却不能阻止一个业务流程中多个接口调用中,跳过前面的接口认证,直接进行后面的接口调用,而在业务系统中,有些业务处理流程长且复杂,需求按照接口预定的执行顺序进行数据处理,在实现应用过程中,如何保证这些接口按照预定的顺序处理业务流程,防止篡改数据,是需要解决的一个问题。
即,相关技术中,在对数据进行保护时,存在不能阻止在同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,容易造成数据被篡改以及执行业务流程的安全性较差的技术问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种防止流程跳转的数据校验方法,以至少解决由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
根据本申请实施例的一个方面,提供了一种防止流程跳转的数据校验方法,包括:接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验。
可选地,在查询第一随机数对应的配置数据之前,方法还包括:判断访问上一个接口的历史请求是否处理成功,在历史请求处理成功的情况下,查询历史请求对应的配置数据,其中,配置数据中包括:第一访问地址、当前待访问接口的第二访问地址、第一校验盐值以及有效时间,其中,有效时间为预设的客户端访问上一个接口与访问当前待访问接口之间的间隔时长,其中,上一个接口为业务流程中的当前待访问接口的上一个接口;根据通用唯一识别码UUID生成第二随机数;以第二随机数为键,以配置数据为值构成键值对,将键值对存储在缓存中。
可选地,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:确定接收到客户端访问目标请求的第一时刻;获取客户端访问上一个接口的第二时刻;确定第一时刻与第二时刻的差值为实际时长;在实际时长小于间隔时长的情况下,根据第三访问地址与配置数据确定目标请求是否通过校验。
可选地,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:在实际时长小于间隔时长的情况下,比较第二访问地址是否与第三访问地址是否相同,得到第二比较结果;在第二比较结果指示第二访问地址与第三访问地址相同的情况下,则确定目标请求通过检验。
可选地,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:在实际时长小于间隔时长的情况下,获取目标接口对应的上一个接口的第四访问地址;在确定第一访问地址与第四访问地址相同,且第二访问地址与第三访问地址相同的情况下,则确定目标请求通过校验。
可选地,目标请求还携带有第二校验盐值,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:比较第二校验盐值是否与第一校验盐值相同,得到第三比较结果;在第三比较结果指示第二校验盐值是否与第一校验盐值相同的情况下,根据第三访问地址与配置数据确定目标请求是否通过校验。
可选地,在查询第一随机数对应的配置数据之后,方法还包括:在查询得到配置数据后,从缓存中删除配置数据。
根据本申请实施例的另一方面,还提供了一种防止流程跳转的数据校验装置,包括:接收模块,用于接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较模块,用于比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;查询模块,用于在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;获取模块,用于至少获取目标接口对应的第三访问地址;确定模块,用于根据第三访问地址与配置数据确定目标请求是否通过校验。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行任意一种防止流程跳转的数据校验方法。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行任意一种防止流程跳转的数据校验方法。
在本申请实施例中,采用通过访问请求携带随机数,通过随机数进行随机数匹配以及接口匹配的方式,通过接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,需要说明的是,该第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验,达到了避免位于业务流程中的前一个接口被直接跳过认证的目的,从而实现了按照业务流程中规定的各个接口的顺序调用各个接口,保障了执行业务流程的高安全性的技术效果,进而解决了由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的防止流程跳转的数据校验方法的流程示意图;
图2是根据本申请一种可选的防流程跳转的应用场景示意图;
图3是根据本申请一种可选的技术实现流程图;
图4是根据本申请实施例的一种可选的防止流程跳转的数据校验装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于本领域技术人员,更好理解本申请相关实施例,现将本申请相关实施例可能涉及的技术术语或者部分名词解释如下:
防重放攻击:把之前的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正常逻辑是插入数据库操作,那么一旦插入数据库的语句写的不好,就有可能出现多条重复的数据。一旦是比较慢的查询操作,就可能导致数据库堵住等情况。
验证流程:在一个逻辑处理过程中,可能会需要多个客户端调用多个接口来共同完成这个流程处理,这些接口请求会安装一定的顺序调用,使用过程中,前一个接口验证通过后,才能继续调用后面一个接口进行验证,安装顺序全部验证成功后,这个流程就算通过了。比如支付流程中,需要先验证码手机验证码,在验证码支付密码,最后才能支付成功。
有效时间:指的是请求前一个接口后,到请求下一个接口的时间间隔,超过这个间隔,系统会校验失败。
校验盐值(验证盐值):用于判断接口请求的唯一性,同一个接口请求,不同的业务数据请求过来可以通过盐值来进行区分校验。一般使用业务数据中的唯一标识,比如订单号。可以为空,此时不会校验盐值。
根据本申请实施例,提供了一种防止流程跳转的数据校验方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的防止流程跳转的数据校验方法,如图1所示,该方法包括如下步骤:
步骤S102,接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;
步骤S104,比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;
步骤S106,在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;
步骤S108,至少获取目标接口对应的第三访问地址;
步骤S110,根据第三访问地址与配置数据确定目标请求是否通过校验。
该方法中,通过接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验,达到了避免位于业务流程中的前一个接口被直接跳过认证的目的,从而实现了按照业务流程中规定的各个接口的顺序调用各个接口,保障了执行业务流程的高安全性的技术效果,进而解决了由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
本申请一些可选的实施例中,在查询第一随机数对应的配置数据之前,可以判断访问上一个接口的历史请求是否处理成功,在历史请求处理成功的情况下,查询历史请求对应的配置数据,需要说明的是,配置数据中包括但不限于:第一访问地址、当前待访问接口的第二访问地址、第一校验盐值以及有效时间,可以理解的,有效时间为预设的客户端访问上一个接口与访问当前待访问接口之间的间隔时长,其中,上一个接口为业务流程中的当前待访问接口的上一个接口;根据通用唯一识别码UUID生成第二随机数;以第二随机数为键,以配置数据为值构成键值对,将键值对存储在缓存中。
本申请一些实施例中,可根据第三访问地址与配置数据确定目标请求是否通过校验,具体地,确定接收到客户端访问目标请求的第一时刻;获取客户端访问上一个接口的第二时刻;确定第一时刻与第二时刻的差值为实际时长;在实际时长小于间隔时长的情况下,根据第三访问地址与配置数据确定目标请求是否通过校验。例如,实际时长为5秒,而有效的间隔时长为6秒,则根据第三访问地址与配置数据确定目标请求是否通过校验。
具体地,根据第三访问地址与配置数据确定目标请求是否通过校验,可在在实际时长小于间隔时长的情况下,比较第二访问地址是否与第三访问地址是否相同,得到第二比较结果;在第二比较结果指示第二访问地址与第三访问地址相同的情况下,则确定目标请求通过检验。例如,对实现某一业务流程可按执行的前后顺序分别执行四个接口:A接口、B接口、C接口、D接口,其中,A接口、B接口、C接口、D接口对应的访问地址分别为001、002、003、004。假设A接口已被执行,即客户端访问001后生成的第二随机数100,接下来应该执行的是B接口,此时,目标接口对应的第三访问地址应为002,但接收到客户端的目标请求,确定其携带有的第一随机数为200,则由于该第一随机数不是100,则不响应客户端的本次发送的目标请求,又例如,接收到客户端的目标请求,确定其携带的第一随机数也为100,则确定第一随机数与所述第二随机数一致,然后,在确定目标接口对应的第三访问地址是否为002(即确定其访问的接口是否为B接口),若不是002,则拒绝响应本次的访问请求;若是002,即本次访问的接口为B接口,则确定目标请求通过校验,然后可执行调用B接口等操作。
本申请一些实施例中,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:在实际时长小于间隔时长的情况下,获取目标接口对应的上一个接口的第四访问地址;在确定第一访问地址与第四访问地址相同,且第二访问地址与第三访问地址相同的情况下,则确定目标请求通过校验。例如,目标接口对应的上一个接口的第四访问地址为001,客户端在实际的接口调用过程,其访问的也是第一访问地址也是001;且第二访问地址与第三访问地址均为002,则确定目标请求通过校验。
本申请一些实施例中,目标请求还携带有第二校验盐值,根据第三访问地址与配置数据确定目标请求是否通过校验,包括:比较第二校验盐值是否与第一校验盐值相同,得到第三比较结果;在第三比较结果指示第二校验盐值是否与第一校验盐值相同的情况下,根据第三访问地址与配置数据确定目标请求是否通过校验。
需要说明的是,在查询第一随机数对应的配置数据之后,在查询得到配置数据后,可从缓存中删除配置数据。
图2是本申请一种可选的防流程跳转的应用场景示意图,如图2所示,在该场景中,该业务流程由接口A、接口B、接口C、接口D四个接口组成,计算机与服务器可通过互联网进行通信,计算机可发送请求数据值服务器,接收服务器返回的结果。
为了更好的理解本申请相关实例,现举例一种可选的实施方式进行说明,需要说明的是,该实施方法不构成对本申请相关实施例的限定。具体地:
1、服务端配置:
在服务端将一个流程中用到的接口请求路径保存起来,保存在集合中,例如,可以以前一个接口路径为key,value中分别存放下一个接口的路径、两个接口请求的有效时间、验证盐值。
2、客户端请求流程中的前一个接口:
客户端组装业务参数请求前一个接口;
3、服务端业务处理接口:
服务端收到接口请求后,进行业务处理,处理成功后,返回业务数据给客户端,其中,code=200为处理成功标志。服务端在返回给客户端之前统一进行拦截处理,流程如下:
判断当前请求是否处理成功,即code=200;
如处理成功,去防流程跳转配置中查看是否有当前请求地址的配置;
如果有则取出配置中的一下个接口地址、有效时间、校验盐值等数据;
利用UUID生成一个随机数randomNum返回给客户端;
可将随机数randomNum以key-value形式保存在缓存中,key就是随机数,value中包含本次接口地址、下一个接口地址、校验盐值,校验盐值从接口返回数据中获取,同时设置缓存的有效时间。
4、客户群请求流程中的后一个接口:
客户端收到调用前一个接口服务端返回的随机数randomNum后,本次请求带上这个随机数,连同业务参数一起请求后一个接口。
5、服务端验证接口防流程跳转:
服务端统一拦截接口请求,通过接口路径在防流程跳转配置中查询是否存在对应的配置数据;如果存在则需要校验接口上传的随机数randomNum是否在缓存中存在;不存在或随机数数不正确,说明请求超时或者数据被篡改了,本次请求不通过。如果缓存中存在随机数randomNum,则取出对应的value,value中包含上次接口地址、本次接口地址、校验盐值;通过配置信息校验本次要访问接口地址与上次访问完上一个接口地址后缓存中存储的“下一个接口地址”是否一致,若不一致,则不通过校验,说明接口请求不是按照流程顺序访问的。
如果配置中有校验盐值,则可还校验盐值来加强校验,根据配置的校验盐值字段名称从参数中获取对应的值,与缓存中的值进行比较,不一致则说明数据被篡改了,不通过校验。可以理解的,从缓存中获取随机数randomNum后,就删除这个数据,这样下一个同样的请求再次请求服务端,则会取不到缓存,校验不通过,则进一步达到防止重复被调用的目的。统一校验通过后,即可以进入业务方法,进行业务逻辑处理;一个流程中如果有多个接口需要按照顺序请求方法,则重复上面步骤即可达到整个流程有序的处理业务逻辑。
容易注意到的是,利用统一的配置,定义一个流程的多个接口访问顺序,使用统一的拦截校验,统一的返回生成随机数,大大减少了对具体业务逻辑的入侵,业务开发人员不比关心具体的校验过程,只需要一个简单的配置,就能高效的保证的流程的安全进行,同时又能避免防重放的攻击,提高了系统的安全性,保护了数据的有消息,确保了流程的时效性。在需要保证执行顺序的多个接口请求中,能够保护接口防重放,还能够保护接口请求按照顺序执行,不被跳过前面的接口验证,直接执行后面的接口验证。利用该技术可以有效的保护流程执行的安全性,服务端便利的操作性可以很容易的集成到系统中,快速部署保护系统安全运行。
图3是本申请一种可选的技术实现流程图,如图3所示,客户端可发送接口请求公服务端,服务端,可以用于从缓存数据中读取随机数,从流程配置中读取配置数据,然后进行校验数据请求,若校验成功,则进入具体业务处理,并返回数据至客户端;若校验失败,则该此次失败的随机数写入缓存中,则可返回失败结果至客户端。
图4是根据本申请实施例的一种防止流程跳转的数据校验装置,如图4所示,该装置包括:
接收模块40,用于接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;
比较模块42,用于比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;
查询模块46,用于在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;
获取模块48,用于至少获取目标接口对应的第三访问地址;
确定模块50,用于根据第三访问地址与配置数据确定目标请求是否通过校验。
该装置中,接收模块40,用于接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较模块42,用于比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;查询模块46,用于在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;获取模块48,用于至少获取目标接口对应的第三访问地址;确定模块50,用于根据第三访问地址与配置数据确定目标请求是否通过校验,达到了避免位于业务流程中的前一个接口被直接跳过认证的目的,从而实现了按照业务流程中规定的各个接口的顺序调用各个接口,保障了执行业务流程的高安全性的技术效果,进而解决了由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行任意一种防止流程跳转的数据校验方法。
具体地,上述存储介质用于存储执行以下功能的程序指令,实现以下功能:
接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行任意一种防止流程跳转的数据校验方法。
具体地,上述处理器用于调用存储器中的程序指令,实现以下功能:
接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验。
在本申请实施例中,采用通过访问请求携带随机数,通过随机数进行随机数匹配以及接口匹配的方式,通过接收客户端访问目标接口的目标请求,其中,目标请求至少携带有第一随机数;比较第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,需要说明的是,该第二随机数为客户端访问上一个接口对应的第一访问地址后生成的随机数;在第一比较结果指示第一随机数与第二随机数一致的情况下,查询第一随机数对应的配置数据,其中,配置数据至少包括:当前待访问接口的第二访问地址;至少获取目标接口对应的第三访问地址;根据第三访问地址与配置数据确定目标请求是否通过校验,达到了避免位于业务流程中的前一个接口被直接跳过认证的目的,从而实现了按照业务流程中规定的各个接口的顺序调用各个接口,保障了执行业务流程的高安全性的技术效果,进而解决了由于相关技术中,在对数据进行保护时,存在的不能阻止同一个业务流程的多个接口调用中,位于业务流程中前面的接口被直接跳过认证,而直接对后面的接口进行认证调用,造成的数据容易被篡改,以及执行业务流程的安全性较差的技术问题。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种防止流程跳转的数据校验方法,其特征在于,包括:
接收客户端访问目标接口的目标请求,其中,所述目标请求至少携带有第一随机数;
比较所述第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,所述第二随机数为所述客户端访问上一个接口对应的第一访问地址后生成的随机数;
在所述第一比较结果指示所述第一随机数与第二随机数一致的情况下,查询所述第一随机数对应的配置数据,其中,所述配置数据至少包括:当前待访问接口的第二访问地址;
至少获取所述目标接口对应的第三访问地址;
根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验。
2.根据权利要求1所述的方法,其特征在于,在查询所述第一随机数对应的配置数据之前,所述方法还包括:
判断访问所述上一个接口的历史请求是否处理成功,在所述历史请求处理成功的情况下,查询所述历史请求对应的所述配置数据,其中,所述配置数据中包括:所述第一访问地址、所述当前待访问接口的第二访问地址、第一校验盐值以及有效时间,其中,所述有效时间为预设的所述客户端访问所述上一个接口与访问所述当前待访问接口之间的间隔时长,其中,所述上一个接口为业务流程中的所述当前待访问接口的上一个接口;
根据通用唯一识别码UUID生成所述第二随机数;
以所述第二随机数为键,以所述配置数据为值构成键值对,将所述键值对存储在所述缓存中。
3.根据权利要求2所述的方法,其特征在于,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验,包括:
确定所述接收到所述客户端访问所述目标请求的第一时刻;
获取所述客户端访问所述上一个接口的第二时刻;
确定所述第一时刻与所述第二时刻的差值为实际时长;
在所述实际时长小于所述间隔时长的情况下,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验。
4.根据权利要求3所述的方法,其特征在于,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验,包括:
在所述实际时长小于所述间隔时长的情况下,比较所述第二访问地址是否与所述第三访问地址是否相同,得到第二比较结果;
在所述第二比较结果指示所述第二访问地址与所述第三访问地址相同的情况下,则确定所述目标请求通过检验。
5.根据权利要求3所述的方法,其特征在于,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验,包括:
在所述实际时长小于所述间隔时长的情况下,获取所述目标接口对应的上一个接口的第四访问地址;
在确定所述第一访问地址与所述第四访问地址相同,且所述第二访问地址与所述第三访问地址相同的情况下,则确定所述目标请求通过校验。
6.根据权利要求2至5任意一项所述的方法,其特征在于,所述目标请求还携带有第二校验盐值,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验,包括:
比较所述第二校验盐值是否与所述第一校验盐值相同,得到第三比较结果;
在所述第三比较结果指示所述第二校验盐值是否与所述第一校验盐值相同的情况下,根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验。
7.根据权利要求1所述的方法,其特征在于,在查询所述第一随机数对应的配置数据之后,所述方法还包括:
在查询得到所述配置数据后,从所述缓存中删除所述配置数据。
8.一种防止流程跳转的数据校验装置,其特征在于,包括:
接收模块,用于接收客户端访问目标接口的目标请求,其中,所述目标请求至少携带有第一随机数;
比较模块,用于比较所述第一随机数是否与缓存中存储的第二随机数一致,得到第一比较结果,其中,所述第二随机数为所述客户端访问上一个接口对应的第一访问地址后生成的随机数;
查询模块,用于在所述第一比较结果指示所述第一随机数与第二随机数一致的情况下,查询所述第一随机数对应的配置数据,其中,所述配置数据至少包括:当前待访问接口的第二访问地址;
获取模块,用于至少获取所述目标接口对应的第三访问地址;
确定模块,用于根据所述第三访问地址与所述配置数据确定所述目标请求是否通过校验。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述防止流程跳转的数据校验方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述防止流程跳转的数据校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111466951.4A CN114329515A (zh) | 2021-12-01 | 2021-12-01 | 防止流程跳转的数据校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111466951.4A CN114329515A (zh) | 2021-12-01 | 2021-12-01 | 防止流程跳转的数据校验方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329515A true CN114329515A (zh) | 2022-04-12 |
Family
ID=81049093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111466951.4A Pending CN114329515A (zh) | 2021-12-01 | 2021-12-01 | 防止流程跳转的数据校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329515A (zh) |
-
2021
- 2021-12-01 CN CN202111466951.4A patent/CN114329515A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107124431B (zh) | 鉴权方法、装置、计算机可读存储介质和鉴权系统 | |
CN105939326B (zh) | 处理报文的方法及装置 | |
CN111478910B (zh) | 用户身份验证方法和装置、电子设备以及存储介质 | |
CN112217835B (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
CN104519018A (zh) | 一种防止针对服务器的恶意请求的方法、装置和系统 | |
CN112561633B (zh) | 虚拟对象订单数据的校验方法、装置及设备 | |
CN110958239B (zh) | 访问请求的校验方法和装置、存储介质及电子装置 | |
CN112131564A (zh) | 加密数据通信方法、装置、设备以及介质 | |
CN113315637A (zh) | 安全认证方法、装置及存储介质 | |
US9635017B2 (en) | Computer network security management system and method | |
CN113472542A (zh) | 基于sm3算法的网络攻击防御方法、装置、存储介质及客户终端、服务终端 | |
CN110943840A (zh) | 一种签名验证方法及系统 | |
CN112422527B (zh) | 变电站电力监控系统的威胁评估系统、方法和装置 | |
CN117155716B (zh) | 访问校验方法和装置、存储介质及电子设备 | |
CN109948333A (zh) | 一种账户攻击的安全防御方法及装置 | |
CN111371811B (zh) | 一种资源调用方法、资源调用装置、客户端及业务服务器 | |
CN111585978A (zh) | 一种拦截虚假请求的方法、客户端、服务端及系统 | |
CN114928452B (zh) | 访问请求验证方法、装置、存储介质及服务器 | |
CN114329515A (zh) | 防止流程跳转的数据校验方法 | |
CN112351048B (zh) | 一种接口访问控制方法、装置、设备和存储介质 | |
CN113709136A (zh) | 一种访问请求验证方法和装置 | |
CN111209561B (zh) | 终端设备的应用调用方法、装置与终端设备 | |
CN112732676A (zh) | 基于区块链的数据迁移方法、装置、设备及存储介质 | |
CN107181719B (zh) | 一种木马程序的检测方法和装置 | |
CN114978710A (zh) | 网页数据的防篡改处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |