[发明专利]基于redis防止接口重复请求的方法在审
申请号: | 201810843314.6 | 申请日: | 2018-07-27 |
公开(公告)号: | CN109325196A | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 杨雪梅;陈熙;漆尧;唐军 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F16/957 | 分类号: | G06F16/957 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 李凌峰 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 重复请求 服务器端 拼接 删除 业务接口 数据库 验证 技术方案要点 分布式部署 服务器请求 安全问题 请求业务 删除成功 重复 线程 语句 返回 失败 应用 保证 | ||
本发明提出一种基于redis防止接口重复请求的方法,涉及防止接口重复请求领域。本发明解决了目前防止接口重复请求的方法不适用于分布式部署的应用,不能保证线程安全问题。其技术方案要点为:首先,用户通过前端向服务器请求bid;其次,服务器端接收到的请求bid后,生成bid并将其返会给前端,同时将重复验证前缀和该bid拼接后存入redis数据库;然后,当用户在前端请求业务接口时,将该bid拼接在url里面作为一个参数一起向服务器端提交;最后,服务器端接收到该请求时,提取出该bid,并将其拼接上重复验证前缀组成key,并且使用语句在redis数据库中删除该key对应的值,然后向前端返回删除结果,若删除成功,则执行业务接口请求,若删除失败,则拒绝执行业务接口请求。
技术领域
本发明涉及计算机网络安全领域,特别涉及如何基于redis数据库防止接口重复请求的领域。
背景技术
一个网络系统的正常运行通常是包括了前端界面、后台接口以及数据交互3大部分,由于信息处理的业务逐渐增多,对于请求处理的业务逻辑越来越复杂,对应事务处理时间也自然加长。在一个系统使用过程当中若用户已经提交了请求,在该请求还没处理完成的时候再次点击提交,结果自然是会提交一次冗余的数据。一旦存在恶意攻击系统的用户,有意的多次提交,从而达到疯狂注入的目的,可能会造成请求处理缓慢,无法提供服务,严重时将会威胁到整个系统的正常使用。因此在实际系统的使用中必须完成对某些特定提交数据的接口进行重复提交的判断和处理。
目前处理重复提交的操作大多是从前端界面进行限制,即提交按钮点击一次后便将按钮设置为不可点击状态,从而限制请求重复提交。然而绕过前端对接口进行访问又十分容易,因此只依赖前端进行限制已经完全不能满足系统的安全要求,需要后端同样进行控制,在这种情况下就需要从接口层面对请求进行控制。已有的方法主要包括使用全局唯一标识,就是根据业务的操作和内容生成一个全局标识,在执行操作前先根据这个全局唯一标识是否存在,来判断这个操作是否已经执行,这种方式的特点是需要根据业务操作和内容来生成全局标识。另一种方式是使用验证码来防止重复请求,进入发布页面时,在后台生成验证码放入缓存,在点击提交时将此验证码一并提交到服务端,服务端先去缓存中查找是否有此验证码,如有则执行接口请求,没有则直接拒绝这个发布请求。但是这样的技术方案也存在部分缺陷,设计发展还不太成熟,设计方式过于广泛不具备针对性,且并不适用于分布式部署的应用,在多节点同时接收请求的情况下,可能会出现这种情况,两个相同的请求同时到达节点1和节点2,节点1查询不存在全局标识,然后还没有将全局标识写入缓存,此时节点2也不能查询到全局标识,此时这个请求在节点1和2都会得到执行,所以其并不能保证线程安全问题。
发明内容
本发明的目的是提供一种基于redis防止接口重复请求的方法,解决防止接口重复请求的方法不适用于分布式部署的应用,不能保证线程安全问题。
本发明解决其技术问题,采用的技术方案是:基于redis防止接口重复请求的方法,包括如下步骤:
步骤1、用户通过前端向服务器请求bid;
步骤2、服务器端接收到的请求bid后,生成bid并将其返会给前端,同时将重复验证前缀和该bid拼接后存入redis数据库;
步骤3、当用户在前端请求业务接口时,将该bid拼接在url里面作为一个参数一起向服务器端提交;
步骤4、服务器端接收到该请求时,提取出该bid,并将其拼接上重复验证前缀组成key,并且使用语句在redis数据库中删除该key对应的值,然后向前端返回删除结果;
步骤5、若删除成功,则执行业务接口请求,若删除失败,则拒绝执行业务接口请求。
具体地,步骤2中,将重复验证前缀和该bid拼接后存入redis数据库时,设置bid过期时间,当超过该过期时间而不对bid数据进行操作,则自动删除存入的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810843314.6/2.html,转载请声明来源钻瓜专利网。