您好,匿名用户
随意问技术百科期待您的加入

表单 重复 发送 解决方案

0 投票

用户提交的表单,有的时候会因为网络延迟重复提交内容

我遇到的是通过ajax方式提交,所以还停留在本页面,但是回馈没做好,总之用户没感知到,还会继续点击发送按钮,结果一下就出现了好多条

嗯,大概说说自己的想法,希望能得大家的指点:

前端:

前端的话,当表单提交,这时候按钮变成disable状态

后端:

生成一个token放在表单的隐藏字段里,服务器端保留,并等待带用户提交时对照令牌

我的问题是:

1.在真正的应用环境里,一般这种情况只做前端或者后端的处理是不是足够

2.如果要生成令牌的话,保存在哪里合适,session或者数据库里,当然session可能本身就在内存里不是文件

3.保存多少条合适,会不会有用户开来了无数的页面造成数据过量...可能是恶意用户

4.也许这也涉及到令牌保存多长时间,比如写一篇文章的时间和回复一篇文章的时间也不一样,是不是需要考虑

5.这里令牌的生成有没有特殊讲究

谢谢大家了啦~!

问题还算有一般性吧,不过我用的环境是php apache mysql

用户头像 提问 2014年 1月27日 @ Usopp 上等兵 (128 威望)
分享到:

1个回答

0 投票

csrftoken是为了防止跨域提交用的,比如我在example.com上做了个指向你网站的ajax按钮,我的用户要是已经在你网站登陆了,发送的恶意post请求就要靠token来防,具体请见clickjacking

但token是不能防止恶意刷数据库的,我用python的xml模组就能轻松抓到你的token返还给你。一定得做captcha

用户头像 回复 2014年 1月27日 @ Morgana 上等兵 (251 威望)
提一个问题:

相关问题

+1 投票
1 回复 64 阅读
+1 投票
1 回复 67 阅读
用户头像 提问 2012年 12月1日 @ 卫宫士郎 上等兵 (173 威望)
0 投票
1 回复 35 阅读
用户头像 提问 2012年 12月1日 @ Lucia 上等兵 (416 威望)
0 投票
1 回复 60 阅读
用户头像 提问 2012年 12月1日 @ Janna 下士 (667 威望)
0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Singed 上等兵 (275 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...