`
kavy
  • 浏览: 891019 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

token防止表单重复提交,token 原理

 
阅读更多

1:显示表单的那个 action 中使用 createToken() 生成一个随机的 token值,并存放在服务端(session或者cache中),并且传递一份到页面中

2:表单页面使用一个隐藏表单域获取后端传过来的 token值,该表单页面提交时会将此 token 值一同提交到后端

3:在表单页面提交到的 actioin 中使用 validateToken() 将服务端与表单隐藏域中的 token 值进行对比,如果服务端存在 token值并且与表单提交过来的值相等,证明是第一次提交。

4:每次校验过后服务端的 token 值会立即被清除,所以当用户重复提交时,后面的提交校验都再也无法通过。从而实现了防止重复提交的功能,validateToken 是在 synchronized 块中执行的保障了多线程下的安全性。

    token 会优先存入 me.setTokenCache(ITokenCache) 指定的 TokenCache 中,如果未指定则默认使用 session 来存放

 

1:显示表单的那个 action 中使用 createToken() 生成一个随机的 token值,并且传递一份到页面中

2:表单页面使用一个隐藏表单域获取后端传过来的 token值,该表单页面提交时会将此 token 值一同提交到后端

3:将提交过来的token值放入session或者cache中,然后执行controller中的代码,代码全部执行完以后,再把存入session或cache中的token值删除掉;验证用户是否为重复提交只需要验证提交过来的token是否存在于session或cache中,有则为重复提交,无则为正常提交。

4:该逻辑应该可以写成一个Interceptor,在需要的地方加上,或者直接设为全局拦截器都是可以的,简单,快捷;

分享到:
评论

相关推荐

    防止表单重复提交的方法(简单的token方式)

    防止表单重复提交的方法(简单的token方式),内附实现代码及实现思路。

    struts2利用token防止表单重复提交(源代码)

    struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...

    sturts2防止表单的重复提交 token

    总的来说,Struts2的Token机制是一种有效防止表单重复提交的方法,它通过生成和验证唯一标识来确保每个请求的唯一性,从而保护了业务的正确性和数据的一致性。在实际开发中,根据项目需求和安全策略,我们可以灵活...

    Token验证表单重复提交

    通过以上步骤,我们就成功地在SSM框架中实现了基于Token的表单重复提交验证。这种方法能够有效地防止由于网络延迟或其他原因导致的多次提交,确保了数据的一致性和安全性。需要注意的是,实际应用中可能还需要考虑...

    javascript方式防止表单重复提交

    8. **表单重定向(Redirect after Post)**:这是一种经典的防止重复提交的方法,提交表单后立即重定向到新的URL,这样即使用户再次点击提交,也会被重定向页面拦截。 9. **使用HTML5的formnovalidate属性**:对于...

    struts token 防止页面刷新,重复提交

    Token机制是一种常见的防止重复提交的方法,其核心思想是为每一次表单提交生成一个唯一的Token值,并将这个Token值存储在客户端(通常是在表单中作为一个隐藏字段),同时也在服务器端记录该Token值。当表单被提交时...

    PHP使用token防止表单重复提交的方法

    为了解决这个问题,PHP 提供了一种基于 token 的机制,可以有效地防止表单的重复提交。以下将详细解释这一机制及其实现方法。 **表单重复提交的问题** 当用户在提交表单时,由于网络延迟或者用户误操作,可能会...

    springMVC中基于token防止表单重复提交方法

    SpringMVC中基于Token防止表单重复提交方法是指通过在SpringMVC配置文件中添加拦截器配置,来拦截页面请求和表单提交请求,以防止表单重复提交。下面是该方法的实现思路和实现方式: 实现思路: 1. 在SpringMVC...

    防止表单重复提交

    本篇文章将深入探讨如何防止表单重复提交,主要关注于基于Struts2框架的解决方案。 首先,理解表单重复提交的原因。用户在点击提交按钮后,如果网络延迟或用户误操作导致页面刷新或再次点击提交,就可能发生重复...

    利用Token机制解决重复重复提交

    Token机制是一种常用的防止表单重复提交的技术方案。其基本思想是在用户提交表单时,服务器会生成一个唯一的Token并将其存储在客户端(如通过Cookie或隐藏字段),同时也会在服务器端存储一份。当用户提交表单时,...

    Struts之Token解决表单那重复提交

    在处理用户交互时,尤其是表单提交,一个常见的问题是防止表单的重复提交。这可能导致数据的不一致性和其他问题。本文将深入探讨如何在Struts框架中利用Token机制来解决这个问题。 一、表单重复提交问题 表单重复...

    struts+token机制解决表单重复提交

    通过这种方式,Struts+Token机制可以有效地防止由于用户误操作或者网络延迟造成的表单重复提交,保证了服务器端数据的一致性和完整性。对于大型的、对数据一致性有严格要求的Web应用来说,这是一个非常重要的安全...

    struts token机制解决表单重复提交

    Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...

    JavaEE Struts2利用tokenSession防止重复提交

    它的基本原理是:在用户提交表单之前,服务器生成一个唯一的token,并将其存储到用户的session中。同时,这个token也会被添加到表单的隐藏字段中。当用户提交表单时,服务器会检查session中的token与表单提交的token...

    自定义注解解决API接口幂等设计防止表单重复提交(生成token存放到redis中)

    为了解决这一问题,我们可以采用自定义注解结合Redis来实现一个防止表单重复提交的解决方案。 首先,让我们理解自定义注解的核心思想。注解是一种元数据,它提供了在代码中添加信息的方式,这些信息可以被编译器或...

    PHP实现防止表单重复提交功能【基于token验证】

    总之,PHP通过基于token的验证可以有效地防止表单重复提交,但需要根据具体的应用场景和需求进行优化和调整。在实际开发中,还可以结合其他策略,如记录提交状态、使用cookie等,以提供更全面的防护。

    struts2 防止表单重复提交的例子

    Struts2框架提供了一种解决方案,即使用Token机制来防止表单的重复提交。以下是对这个主题的详细说明: 1. **表单重复提交问题**:当用户在提交表单时,由于网络延迟或用户误操作,可能会导致同一个表单被多次提交...

Global site tag (gtag.js) - Google Analytics