后端防止重复提交 “利用Token解决重复提交”背后的前提是什么?
“利用Token解决重复提交”背后的前提是什么?
Struts本身有一套完善的令牌机制,可以防止表单被重复提交,但是作者目前的项目自写框架没有使用Struts,因此它还必须编写令牌机制,防止用户因为返回或刷新而重复提交表单内容。这并不难,很容易实现。
实施原则:一致性。当JSP生成表单时,它会在表单中插入一个隐藏字段,即保存在页面一侧的标记字符串,并将该字符串存储到会话中。当用户提交表单时,将提交隐藏的令牌字符串。在服务器端,检查会话是否包含与令牌字符串相等的字符串。如果有,则表示该表单是第一次提交,然后删除会话端存储的令牌字符串,然后进行正常的业务逻辑处理;如果没有,则表示该表单是重复提交的,进行异常的流程处理,以及警告提示,否则什么也做不了。百度最常用的方法是使用代币。即:
1。生成页时生成一个令牌(随机字符串),并同时将其写入窗体和服务器会话的隐藏部分。
2. 当客户端向服务器提交表单时,它会比较表单中的令牌是否与会话中的令牌一致。否则,请求将被视为无效。
3. 无论第二步的验证是否通过,只要使用一次,令牌就会作废(即从会话中销毁)。同时,令牌还可以关联时间信息,超时后自动失效。这样,即使客户端重复提交,也只有第一个请求才能成功。
后端防止重复提交 防止token被复制使用 csgo注册表单重复提交
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。