[发明专利]一种防止页面重复提交的方法在审
申请号: | 201710740130.2 | 申请日: | 2017-08-25 |
公开(公告)号: | CN107872507A | 公开(公告)日: | 2018-04-03 |
发明(设计)人: | 王承明 | 申请(专利权)人: | 成都萌想科技有限责任公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30 |
代理公司: | 北京七夏专利代理事务所(普通合伙)11632 | 代理人: | 王彦丽 |
地址: | 610094 四川省成都市高*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 页面 重复 提交 方法 | ||
技术领域
本发明涉及计算机应用技术领域,具体的讲涉及一种防止页面重复提交的方法。
背景技术
现有技术方案中采用了Token(令牌)机制,原理如下:当访问一个请求的时候,底层框架将一个令牌(所谓令牌就是一个随机生成的一个字符串)放入会话中存储起来,然后再转向到页面,页面中html:form标签将会话中的令牌保存到form表单中一个隐藏的input域中,等用户输入完数据,然后点击保存执行保存请求的时候,底层框架会在业务程序之前判断会话中的令牌和客户端传递过来的隐藏input域中的令牌是否相等,如果相等,则更新会话中的令牌,并去执行业务程序;当系统反应速度比较慢,用户可能会点击第二次或者用户点击浏览器的回退,然后再点击提交,或者直接刷新页面,提交执行,在上面这几种情况下,由于点击第一次后,会话中的令牌已经更新,因此会话中的令牌和隐藏input域中的令牌就不相等,则是重复提交,返回一个错误页面提示重复提交。
因此这种方案造成的不足是:
1、一个html中如果有多个form表单,而且需要同时提交时,第二个要提交的form将不能提交,因为当提交了第一个form后,会话中的令牌将被更新,那么第二个form提交时就会由于会话中的令牌的改变而不能提交。
2、当页面中有多个按钮,比如有保存、返回等按钮的时候,但点击保存后,再点击返回,同样提示重复提交的问题,也就是说,重复提交的控制是整个页面,而不是控制到一个cmd。
3、当页面有iframe(不管是否隐藏)的时候,iframe执行的cmd会将会话中的令牌重写,这样造成iframe所在的主页不能提交。
4、当采用一个页面多个tab页显示内容时候,用户打开多个页面,这样新打开的页面将会把会话中的令牌修改,造成以前打开的页面不能提交。
发明内容
因此本发明提出一种防止页面重复提交的方法,用来解决上述背景技术中的不足。
本发明的技术方案是这样实现的:一种防止页面重复提交的方法,修改传统的Token令牌机制,采用按组分配的token对象,每个token对象对应1个url请求,所有token对象构成一个token对象组,然后通过token的信号量命中累计,与1进行对比,具体步骤如下:
1)在html各个form需要的位置,产生一个唯一的token,每个页面由多个form的token构成一个组;
2)在提交时,前端将token和token组传递给后台,后台通过组中存放的每个form的组进行命中存放;
3)比对后每个token对应一个令牌,并将令牌放入当前页面对应的这个令牌组中;
4)后端判断重复提交的时候,首先取出对应这个页面的token组,然后判断组中每个对象和当前请求的token对象的命中次数。
在基于上述一种防止页面重复提交的方法的一个实施例中,所述步骤4)中,判断组中每个对象和当前请求的token对象的命中次数,当判断信号量大于1则为重复提交,终止操作返回错误信息提示,当判断信号量小于1时,执行业务程序,检测完毕。
由于每个form会产生一个令牌,并将它们都放入到会话token组中,这个不会出现令牌被修改的问题。可以解决原方案中的,一个html中如果有多个form,而且需要同时提交时,第二个要提交的form将不能提交,因为当提交了第一个form后,会话中的令牌将被加1,那么第二个form提交时就会由于会话中的令牌的改变而不能提交的问题。
由于一个令牌对应一个请求,这样就解决了原方案中的,当页面中有多个按钮,比如有保存、返回等按钮的时候,但点击保存后,再点击返回,同样提示重复提交的问题,也就是说,重复提交的控制是整个页面,而不是控制到一个cmd的问题。
由于会话中可以存放无限制个数的token组,每个token组中可以存放无限制个数的令牌,这就解决了原来方案中的当页面有iframe(不管是否隐藏)的时候,iframe执行的cmd会将会话中的令牌重写,这样造成iframe所在的主页不能提交的问题和当采用一个页面多个tab页显示内容时候,用户打开多个页面,这样新打开的页面将会把会话中的令牌修改,造成以前打开的页面不能提交的问题。
通过上述公开内容,本发明的有益效果为:本发明通过form产生令牌,不会被修改,同时一个令牌对应一个请求,重复提交的控制是整个页面,可以存放的无限制个数的token组,改方法简单高效,能够有效地防止页面重复提交。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都萌想科技有限责任公司,未经成都萌想科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710740130.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于实时消息的广播方法
- 下一篇:用于车辆共享系统的关系管理