当用户填写完表单后,在提交过一次后,若用户做如下操作比如再次点击提交、刷新页面、提交页面呈现后点击后退按钮,都会导致表单重复提交。如果信息需要存储到后台数据库中,重复提交就会再次向数据库中插入用户信息,显然这样是不对的。解决方式有两种 (一)Session Token机制 当用户首次访问包含表单的页 ...
分类:
其他好文 时间:
2017-03-30 22:47:29
阅读次数:
140
表单重复提交主要有以下三种情况: 1. 在网络延迟的情况下让用户有时间点击多次submit按钮导致表单重复提交 2. 表单提交后用户点击【刷新】按钮导致表单重复提交 3. 用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交 解决办法主要有以下几种: 1. 利用JavaScript防 ...
分类:
编程语言 时间:
2017-03-30 21:23:26
阅读次数:
250
Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧 ...
分类:
其他好文 时间:
2017-03-28 17:41:04
阅读次数:
195
用户重复提交表单在某些场合将会造成非常严重的后果。例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次。因此,重复提交表单会对你的系统带来逻辑影响,必须采取一些措施防止这类情况的发生。 用户重复提交同一个HTML表单 ...
分类:
其他好文 时间:
2017-03-22 00:33:22
阅读次数:
195
Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。那么,Token有什么作用?又是什么原理呢?Token一般用在两个地方:1)防止表单重复提交、2)anticsrf攻击(跨站点请求伪造)。两者在原理上都是通过sessiontoken来实现的。当客户端请求页面时,服..
分类:
Web程序 时间:
2017-03-21 00:08:04
阅读次数:
152
我们在java中,在list页面跳转add页面,在Controller中toadd这个方法中给session.put("t", "随便的一个数"); 在进入add.jsp页面中输入内容点击提交进入Controller中doadd方法,在方法中判断 if(session是否有值){ 清除session ...
分类:
其他好文 时间:
2017-03-11 15:58:14
阅读次数:
152
1.使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单。 缺点是若客户端禁止JavaScript脚本,则失效。 2.在提交成功后执行页面重定向(redirect)。转到提交成功信息页面。 特点:避免F5重复提交,消除浏览器前进和后退按钮可导致的同样问 ...
分类:
Web程序 时间:
2017-03-08 19:22:39
阅读次数:
178
参考:http://blog.csdn.net/sum_rain/article/details/37085771 Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交、 ...
分类:
Web程序 时间:
2017-03-06 18:30:06
阅读次数:
159
防止表单重复提交 问题:什么是表单重复提交? regist.jsp >RegistServlet 表单重复提交 危害: 刷票、 重复注册、带来服务器访问压力(拒绝服务) 解决方案: 在页面上生成一个令牌(就是一个随机字符串),将其存储到session中,并在表单中携带. 在服务器端,获取数据时,也将 ...
分类:
其他好文 时间:
2017-03-06 16:28:43
阅读次数:
194
一、有很多的应用场景都会遇到重复提交问题,比如: 1、点击提交按钮两次。2、点击刷新按钮。3、使用浏览器后退按钮重复之前的操作,导致重复提交表单。4、使用浏览器历史记录重复提交表单。5、浏览器重复的 HTTP 请求。 二、防止表单重复提交的方法 1、禁掉提交按钮 表单提交后使用 Javascript ...
分类:
其他好文 时间:
2017-02-17 21:45:30
阅读次数:
184