防止恶意重复提交

1.提交按钮禁止双击,点击一次后,禁用按钮。(但仍可以刷新提交,或借助工具提交)

2.加入图形验证码,或者加入拼图验证码

3.限制请求来源,禁止跨域提交或者限制请求的来源域名

4.限制请求次数,这个分几种情况:cookie记录次数,需要判断客户端是否禁用了cookie;限制userid的提交次数,限制ip的提交次数;

5.使用Session

具体的做法:在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token。
然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提交的时候连同这个Token一起提交到服务器端,
然后在服务器端判断客户端提交上来的Token与服务器端生成的Token是否一致,如果不一致,那就是重复提交了,此时服务器端就可以不处理重复提交的表单。
如果相同则处理表单提交,处理完后清除当前用户的Session域中存储的标识号。
在下列情况下,服务器程序将拒绝处理用户提交的表单请求:

<1>存储Session域中的Token(令牌)与表单提交的Token(令牌)不同
<2>当前用户的Session中不存在Token(令牌)
<3>用户提交的表单数据中没有Token(令牌)

猜你喜欢

转载自www.cnblogs.com/xsj1989/p/9140744.html
今日推荐