精华内容
下载资源
问答
  • token令牌

    千次阅读 2018-07-15 10:49:38
    防止重复刷新提交:token令牌.创建一个单例模式,防止两人同时提交,使用synchronzied关键字使线程安全.使用通用识别码随机生成一个uuidpackage com.dt64.util;import java.util.UUID;public class Stoken { static ...

    防止重复刷新提交:token令牌.


    创建一个单例模式,防止两人同时提交,使用synchronzied关键字使线程安全.使用通用识别码随机生成一个uuid

    package com.dt64.util;

    import java.util.UUID;

    public class Stoken {
        static Stoken  st=null;
        private Stoken(){}
        public synchronized static Stoken getInstance(){
            if(st==null){
                st=new Stoken();
            }
            return st;
            
        }
        public static String getTokenStr(){
            return    UUID.randomUUID().toString();
        }
    }

    Initservlet加载获取令牌,调用token实例中的静态获取uuid方法

    使用session存储令牌属性,然后由addShoppingservlet得到服务器中的令牌。判断服务器中的令牌是否为空

    得到参数。令牌匹配成功的话,就表名登录过,然后消除令牌


    request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            response.setContentType("text/html");    
            BizServiceImpl  bs=new BizServiceImpl();
            BizDaoImpl   bdi=new BizDaoImpl();
            bs.setBizDao(bdi);
            PrintWriter out=response.getWriter();
            //判断是否登录?
            HttpSession session=request.getSession(false);
            Object  obj=session.getAttribute("uname");
            Object obj_token=session.getAttribute("str_token");//服务器
            //out.print("alert("+obj_token+");");
            if(obj_token!=null){
                String client_token=request.getParameter("client_token");
                String server_token=(String)obj_token;
                if(client_token.equals(server_token)){
                    //令牌匹配成功
                    if(obj!=null){
                        //登录过
                        String id=request.getParameter("id");
                        Integer k_id=Integer.parseInt(id);
                        Shopping  sp=bs.getShoppingById(k_id);
                        //逻辑    如果窗口相同,数量自增,如果不同的商品,累加一条记录
                        //1.如果在map集合中有相同key的时候,num++  2.没有的话,num=1
                        if(map.containsKey(k_id)){
                            //存在的话,数量自增
                            sp.setSpnum(map.get(k_id).getSpnum()+1);
                            map.put(k_id, sp);
                        }else{
                            //不存在
                            sp.setSpnum(1);
                            map.put(k_id, sp);
                        }
                        
                        
                //request.setAttribute("sp", sp);
                request.setAttribute("map", map);
                //跳转 登录过
                request.getRequestDispatcher("show.jsp").forward(request, response);
            }else{   
                out.write("<script>");
                out.write("alert('尚未登录,请先登录!');");
                out.write("location.href='init';");
                out.write("</script>");
                }
                //消除session令牌
                session.removeAttribute("str_token");
                }
                
            }else{ //session中没有令牌的情况
                out.print("<script>");
                out.print("alert('不能重复刷新');");
                out.print("location.href='init';");
                out.print("</script>");
                
            }

    虽然可以防止重复刷新,但是又出现了一个新的问题:点击浏览器中的"后退按钮"时候,也可以进入到initservlet里面去,造成了一个浏览器缓存问题

    解决方法:不读取页面缓存即可。

    在对应的jsp页面添加

    <%// 不读取缓存

          response.setHeader("Cache-Control","no-store"); //缓存控制器

          response.setHeader("Pragrma","no-cache"); //无缓存

          response.setDateHeader("Expires",0);

          %>



    展开全文
  • Token 令牌

    2011-09-07 10:37:25
    Token 令牌  用户认证系统所使用的Token 令牌,是验证用户身份,为用户提供特殊登录虚拟编码,保障用户安全登录系统的技术。其工作原理是:根据其特有的值和时间点,在使用时产生一个无法预知的编码,该编码和用户...
     Token 令牌  
    

    用户认证系统所使用的Token 令牌,是验证用户身份,为用户提供特殊登录虚拟编码,保障用户安全登录系统的技术。其工作原理是:根据其特有的值和时间点,在使用时产生一个无法预知的编码,该编码和用户口令构成了用户的通行码。登录目的服务器和该用户的Token 共享一个根,同时使用和 Token 相同的编码生成函数。服务器除检查用户的口令外,还在一个小的时间片内生 成 Token 编码,和用户输入的编码做比较,若匹配,则用户的身份得到确认。

     

    展开全文
  • Token令牌

    千次阅读 2018-09-23 17:13:16
    什么是Token? 用户调用服务器API,向服务器发送的一个可靠的...2、使用了Token之后,用户在第一次登陆之后服务器可以签发一个令牌,返回给客户端,客户端保存该令牌,在之后登陆中,通过发送令牌进行用户的验证登...

    什么是Token?

    用户调用服务器API,向服务器发送的一个可靠的验证信息,用于服务器判断是否为用户

     

    为什么使用Token?

    1、传统web验证方式是每次都发送用户名和密码给服务器进行验证,每次都需要发送用户名密码大大增加信息被截获的风险。

    2、使用了Token之后,用户在第一次登陆之后服务器可以签发一个令牌,返回给客户端,客户端保存该令牌,在之后登陆中,通过发送令牌进行用户的验证登陆。

     

    Token有何好处?

    1、避免重复发送用户名和密码,提高安全性

    2、有助于服务器验证请求者的身份,保证了API的访问权限。

     

    目前流行的访问权限认证模式

    JWT

    该访问权限认证模式中的Token,数据格式为Json形式,以Hash算法生成一个字符串,全称为Json Web Token

     

    Token的组成

    1、Header

    头部规定了访问权限认证模式和加密方法

    {
    "typ" : "JWT",    (typ:类型)
    "alg" : "HS256" (alg:算法,HS256表示哈希算法的mac值。SHA256/HmacSHA256,SHA256表示直接加密,HmacSHA256表示用秘钥进行加密。SHA(Secure) Hash Algorithm ,安全散列算法)
    HMAC(Hash Message Authentication  Code,散列消息鉴别码))
    }

    2、content

    内容中包含一些用户的个人信息,下面是一些标准字段

    iss:Issuer,发行者
    sub:Subject,主题
    aud:Audience,观众
    exp:Expiration time,过期时间
    nbf:Not before
    iat:Issued at,发行时间
    jti:JWT ID
    {
     "iss": "ninghao.net",
     "exp": "1438955445",
     "name": "wanghao",
     "admin": true
    }
    //base64编码结果
    eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ
    Signature​

    3、sign

    sign的加密包括两部分,第一部分是对base64编码的header.content字符串进行加密,第二部分是对密码进行加密,这里的Secret是一个密码,存储在服务器中。

    var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload); 
    HMACSHA256(encodedString, 'secret');
    //加密结果
    SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc

    综合

    生成的Token令牌是header.content.sign

    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc

    之后客户端就会收到这个Token令牌,客户端发送请求携带该令牌就会获取需要的资源

    展开全文
  • TOKEN令牌

    千次阅读 2016-09-22 15:32:57
    Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交、2)anti csrf攻击(跨站点请求...
         
    

    Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。

    那么,Token有什么作用?又是什么原理呢?

    Token一般用在两个地方:

    • 1)防止表单重复提交、
    • 2)anti csrf攻击(跨站点请求伪造)。

    两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。
    然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。
    不过,如果应用于“防止表单重复提交”,服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。

    上面的session应用相对安全,但也叫繁琐,同时当多页面多请求时,必须采用多Token同时生成的方法,这样占用更多资源,执行效率会降低。因此,也可用cookie存储验证信息的方法来代替session Token。比如,应对“重复提交”时,当第一次提交后便把已经提交的信息写到cookie中,当第二次提交时,由于cookie已经有提交记录,因此第二次提交会失败。
    不过,cookie存储有个致命弱点,如果cookie被劫持(xss攻击很容易得到用户cookie),那么又一次gameover。黑客将直接实现csrf攻击。

    所以,安全和高效相对的。具体问题具体对待吧。

     

    展开全文
  • WEB安全之token令牌保证接口幂等性

    万次阅读 2020-08-16 02:05:34
    WEB安全之token令牌保证接口幂等性问题  业务要求:页面的数据只能被点击提交一次  发生原因:由于重复点击或者网络重发,或者 nginx 重发等情况会导致数据被重复提交 解决办法:采用 token 加 redis(redis ...
  • token令牌生成和验证

    2020-07-19 11:19:44
    token令牌生成和验证
  • 今天小编就为大家分享一篇laravel5.5安装jwt-auth 生成token令牌的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • asp.net webapi2 基于token令牌的身份验证 通过浏览器模拟附加token的headers请求授权
  • 接口认证:Bearer TokenToken 令牌

    千次阅读 2019-05-15 10:51:00
    所以,如果接口不希望被...1)Bearer TokenToken 令牌) 定义:为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息,称为Token,这个token通常由Json数据格式组成,通过hash散列算法生成一个字符...
  • token 令牌 验证

    千次阅读 2015-10-09 18:10:58
    其实各个框架的token 令牌验证原理一样,分成生成跟验证两个步骤,步骤如下。 步骤: 1、加载jsp页面的时候异步获取token id放到表单的隐藏域,生成token id 的同时也把token id放到session 中。 (这是生成) 2、...
  • Java 使用Token令牌防止表单重复提交

    万次阅读 2016-03-23 10:11:13
    Java 使用Token令牌防止表单重复提交的步骤: - 在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token。 - 将Token发送到客户端的Form表单中,在Form表单中...
  • token 令牌的含义: 是一个加密后的字符串,可以保存信息,也可以设置信息的有效期。 token的操作步骤 1.生成token,并且设置和保存数据和有效期(加密过程) 2.返回给前端进行保存 3.前端在请求的时候,携带...
  • token令牌认证与数字签名认证区别

    千次阅读 2019-10-29 10:45:47
    token令牌认证 解决问题:免密登录。 应用场景:前后台分离项目的场景。 内容:当输入账户和密码登录成功后,服务器端会生成一个token 作用:服务器端会将生成的token传送给客户端,以后每次客户端每次发出请求时,...
  • Springboot token令牌验证解决方案 在SpringBoot实现基于Token的用户身份验证
  • 如何利用token令牌防止表单重复提交

    千次阅读 2018-12-10 15:31:44
    如何利用token令牌防止表单重复提交,老规矩一步一步来。 第一步:写一个令牌生成器类, package com.accp.entity; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import ...
  • 微信小程序+TP5——token令牌生成

    千次阅读 2018-10-24 17:06:24
    token令牌的作用:客户端每次登录服务器端都会生成一个唯一的token令牌值,并返回到客户端,而服务器端会默认将token令牌值作为key, 用户信息作为value,一一对应存入缓存中,当用户每一次发送请求时,都要携带这个...
  • App接口之Token令牌实现

    万次阅读 2018-05-23 21:26:36
    《App接口之Token令牌实现》转载请注明来自 傻小孩b_移动开发(http://www.jianshu.com/users/d388bcf9c4d3)喜欢的可以关注我,不定期总结文章!您的支持是我的动力哈!1、目的众所周知,在web端中,Token(令牌)...
  • 什么是 Token 令牌

    2020-07-22 11:55:20
    在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思. ...密保令牌(Security token),或者硬件令牌,例如U盾,或者叫做认证令牌或者加密令牌,一种计算机身份校验的物理设备 会话令牌(Se...
  • 通过token令牌登陆k8s dashboard ui界面

    千次阅读 2020-07-13 07:10:00
    微信公众号搜索DevOps和k8s全栈技术 ,即可关注我的公众号,也可通过扫描文章最后的二维码关注,每天都会分享技术文章供大家参考阅读~,拥抱开源,同大家共同进步~通过token令牌登陆...
  • token令牌的理解

    2020-04-16 14:37:41
    Token, 令牌,代表执行某些操作的权利的对象 在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。 既是标记的意思,不同的用户有不同的标记,赋有不同的权力 生成 ...
  • 这是一个token的示例,众所周知,token是用于后台服务器认证浏览器的一种技术,它弥补了cookie对数据大小限制和安全性问题
  • Token令牌传递

    2020-05-14 05:34:19
    我们为什么使用token 随着交互式应用的兴起,我们需要记住用户的信息与数据,但http协议是无状态的,所以传统的解决办法就是基于服务器的验证–session。 为了区分每个用户,服务器为每个客户分配一个会话标识...
  • 简单实现Shiro单点登录(自定义Token令牌
  • 需要授权的api , 必须在请求头中使用authorization 字段提供的token令牌 后台除了登录接口之外,都需要token权限验证,我们可以通过添加axios请求拦截器来添加token,以保证拥有获取数据的权限 在main.js中添加代码...
  • 生成 token 令牌

    千次阅读 2018-06-26 15:55:26
    import java.security.MessageDigest;... * 功能:生成token&lt;br&gt; * 作者:张tt&lt;br&gt; * 时间:2017年6月26日&lt;br&gt; * 版本:1.0&lt;br&gt; ...
  • Token令牌管理权限

    2019-03-29 16:37:00
    Token是服务器生成的一串字符,作为客户端请求的令牌。当第一次登陆后,服务器会分发Tonken字符串给客户端。后续的请求,客户端只需带上这个Token,服务器即可知道是该用户的访问。 使用Tonken,可以实现:权限管理...
  • Node后端微服务框架,基于koa-xauth中间件,TOKEN令牌式身份认证集成 框架目录结构 ├── app.js ├── config │ ├── default.json │ ├── develop.json │ └── production.json ├── node_modules...
  • token 令牌完整介绍及使用

    千次阅读 2020-04-06 23:09:39
    举个例子:比如你想去公园,这个 token 就相当于门票,你只有拿着这个门票才能进去 一般用在前后端分离开发 一个加密以后的字符串,该字符串可以被反编译 反编译就是加完密之后还可以解开 只不过这里的解开需要一把...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,352
精华内容 27,340
关键字:

token令牌