产生原因:
网络延时、重新刷新、点击浏览器的【后退】按钮回退到表单页面后进行再次提交
前端
点击铔之后,按变灰
标识
2.后瑞
使用 token
1,使用令牌好处唯一性只能有一次请求
web 安全知识点使用令解决模拟请求我現在把这个生 token 方式知道,还是能被模拟?模拟程序使用验证码模拟请求识别验证码是非常难token+验证码使用 javascript 解决既然存在上述所说的表单重复提交问题,那么我们就要想办法解决,比较常用的方法是采用 JavaScript 来防止表单重复提交,具体做法如下:修改 form.jsp 页面,添加如下的 JavaScript 代码来防止表单重复提交
<scirpt type="text/javascript" >
var isFlag = false; //表单是否已经提交标识,默认为false
<body>
<from action="${pageContext.request.contextPath}/DoFormServlet"
method="post" onsubmit="return submitFlag()">
用户名:<input type="text" name="userName" >
<input type="submit" value="提交" id="submit">
</form>
</body>
</html>
除了用这种方式之外,经常见的另一种方式就是表单提交之后,将提交按
钮设置为不可用,让用户没有机会点击第二次提交按钮,代码如下:
function dosubmit(){
//获取表单提交按钮
var btnSubmit = document.getElementById("submit");
//将表单提交按钮设置为不可用,这样就可以避免用户再次点击提交按钮
btnSubmit.disabled= "disabled";
//返回true让表单可以正常提交
return true;
}