zoukankan      html  css  js  c++  java
  • 防止恶意重复提交

    1.提交按钮禁止双击,点击一次后,禁用按钮。(但仍可以刷新提交,或借助工具提交)

    2.加入图形验证码,或者加入拼图验证码

    3.限制请求来源,禁止跨域提交或者限制请求的来源域名

    4.限制请求次数,这个分几种情况:cookie记录次数,需要判断客户端是否禁用了cookie;限制userid的提交次数,限制ip的提交次数;

    5.使用Session

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

    <1>存储Session域中的Token(令牌)与表单提交的Token(令牌)不同
    <2>当前用户的Session中不存在Token(令牌)
    <3>用户提交的表单数据中没有Token(令牌)

  • 相关阅读:
    Jupyter notebook 读取文件的问题
    机器学习-数据清洗和特征选择
    机器学习-逻辑回归
    Java教程
    13.并发编程
    redis 实现
    CyclicBarrier介绍
    Future模式衍生出来的更高级的应用
    并发编程 futuretask
    整理POST请求方式
  • 原文地址:https://www.cnblogs.com/xsj1989/p/9140744.html
Copyright © 2011-2022 走看看