session token 防止表单重复提交

来源:互联网 发布:手机取色软件 编辑:程序博客网 时间:2024/04/29 03:30

转自http://www.iflym.com/index.php/code/avoid-conrrent-duplicate-submit-by-use-session-synchronized-and-token.html 

本文正是通过使用session以及在session中加入token,来验证同一个操作人员是否进行了并发重复的请求,在后一个请求到来时,使用session中的token验证请求中的token是否一致,当不一致时,被认为是重复提交,将不准许通过。
    整个流程可以由如下流程来表述:

  1. 客户端申请token
  2. 服务器端生成token,并存放在session中,同时将token发送到客户端
  3. 客户端存储token,在请求提交时,同时发送token信息
  4. 服务器端统一拦截同一个用户的所有请求,验证当前请求是否需要被验证(不是所有请求都验证重复提交)
  5. 验证session中token是否和用户请求中的token一致,如果一致则放行
  6. session清除会话中的token,为下一次的token生成作准备
  7. 并发重复请求到来,验证token和请求token不一致,请求被拒绝

    由以上的流程,我们整个实现需要以下几个东西

  1. token生成器,负责生成token
  2. 客户token请求处理action,负责处理客户请求,并返回token信息
  3. token拦截器,用于拦截指定的请求是否需要验证token
  4. token请求拦截标识,用于标识哪些请求是需要被拦截的
  5. 客户端token请求处理方法,用于请求token,并存放于特定操作中,并在提交时发送到请求中
0 0
原创粉丝点击