利用Session防止表单重复提交

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

在下列情况下,服务器程序将拒绝处理用户提交的表单请求:

存储Session域中的Token(令牌)与表单提交的Token(令牌)不同。

当前用户的Session中不存在Token(令牌)。

用户提交的表单数据中没有Token(令牌)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表...
    重山杨阅读 1,761评论 5 26
  • 解决思路: 表单不能由HTML页面输出,须有程序生成输出 程序输出表单时需在表单里添加一个随机数打给浏览器 用户提...
    wswenyue阅读 1,947评论 0 1
  • 主人翁是从一个朋友圈中发现有简书的!幸运的遇见!遇见中发现它独有的魅力! 谢谢那位在朋友圈发表简书的...
    个性小女阅读 572评论 0 0
  • 1 文静给我发消息告知婚讯的时候,我正在深圳宝安区从机场东开往海上田园的M333路公交的末班车上。那是2014年的...
    氧气姑娘666阅读 285评论 0 0