• token防止重复提交


    Token,可以翻译成标记!最大的特点就是随机性,不可预测,一般黑客或软件无法猜测出来。

    Token一般用在两个地方:

    • 1: 防止表单重复提交
    • 2: anti csrf攻击(Cross-site request forgery 跨站点请求伪造)

    两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。
    下次客户端提交请求时,Token会随着表单一起提交到服务器端。

    1、应用于“anti csrf攻击”:

    服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。

    2、应用于“防止表单重复提交”:

    服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。

    //打印小票
    $(document).on("click", ".printBtn", function() {
            var recordId=$(this).parents("tr").attr("data-id");
            $.commonAjax({
              type : 'post',
              url : printUrl,
              data : {diaryId:recordId},
              success : function(re) {
                //打印小票
                Main.printTicket(re.ticket);
              },
              error : function(msg, status) {
                //异步提交,刷新token,保证重复提交验证功能正常
                $.get(refreshTokenUrl, {
                  r : Math.random()
                }, function(resData) {
                  $('#formToken').val(resData.data);
                  if(msg!='RESUBMIT_ERROR'){popWin.alert(msg);}
                }, 'json');
              }
            });    
    });
    
    

    参考:

    link

  • 相关阅读:
    webMagic 处理get请求
    springCloud Stream
    获取印度时间
    java获取未来或者过去的时间
    List分批处理结果,并在每批中开启一个线程
    java中List集合分批处理
    Redis常用的数据类型
    ubuntu1604软件卸载
    Ubuntu清理无效包、废弃包、冗余包、rc包
    cuda各个版本官方下载地址
  • 原文地址:https://www.cnblogs.com/papi/p/6952528.html
Copyright © 2020-2023  润新知