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(令牌)

  • 相关阅读:
    vue+elementUI表格排序事件
    移动端flex布局
    注册发送验证码提示信息
    jquery模拟生日日期下拉选择框
    标签模拟多选择框checkbox
    vue关于组件传值
    关于前端浏览器与服务器间的交互的对比与分析
    axios的基本使用
    Promise的基本使用
    Vue Cli2 文件路径别名
  • 原文地址:https://www.cnblogs.com/xsj1989/p/9140744.html
Copyright © 2011-2022 走看看