什么是jwt

jwt的问题

jwt的是实践

https://www.pingidentity.com/en/company/blog/posts/2019/jwt-security-nobody-talks-about.html

OpenID+JWTs

我们之前提到过JWT在OpenID Connect中的使用。提供者向客户机发出身份令牌。该身份令牌包含有关用户与提供者的身份验证的信息。身份令牌是JWT令牌,使用提供者的私钥签名。

OpenID Connect花了很大力气来改进身份令牌的安全属性。例如,协议要求使用“exp”、“iss”和“aud”声明。此外,该令牌包含一个nonce来防止重放攻击。由于这些要求,滥用被盗的身份令牌变得非常困难,甚至不可能。

JWTs作为OAuth 2.0的access token

OAuth 2.0访问令牌是JWT的另一个很好的用例。这样的访问令牌允许客户机应用程序访问受保护的资源,比如API。OAuth 2.0访问令牌有两种形式:引用令牌和自包含令牌。

  • 引用令牌指向由授权服务器保存的服务器端元数据。引用令牌的功能类似于标识符,很像传统的会话标识符。
  • 自包含的令牌以JWT的形式出现。它包含作为有效负载的所有元数据。为了保护数据,发布方使用私钥签署令牌。

传统的OAuth 2.0令牌是承载令牌。如果一个人受到伤害,它可以被任何拥有它的人无限制地使用。被破坏的引用令牌可由授权服务器撤消。对于自包含的令牌,撤销要复杂得多。

因此,强烈建议尽可能缩短访问令牌的生命周期。分钟或小时的令牌生存期非常常见。不建议使用天或月的寿命。如果可能,短期访问令牌应该与refresh令牌结合使用,以提高安全性。

此外,规范中新增的内容通过引入拥有证明机制来处理承载令牌属性。

作为会话对象的JWTs

OpenID Connect和OAuth 2.0等协议积极尝试解决JWTs的弱点。不幸的是,我们还观察到许多将JWTs合并到其体系结构中的应用程序,而没有考虑到这些预防措施。

一个具体的示例是一个使用JWTs在客户机上存储授权状态的应用程序。这支持使用无状态后端,这使部署变得非常容易。

然而,这样的客户端令牌是承载令牌。没有适当的短生命期或撤销机制使这种情况非常脆弱。

token的类型:

https://leastprivilege.com/2015/11/25/reference-tokens-and-introspection/

session与jwt共同使用:

http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/

Stateless JWT: A JWT token that contains the session data, encoded directly into the token.
Stateful JWT: A JWT token that contains just a reference or ID for the session. The session data is stored server-side.
Session token/cookie: A standard (optionally signed) session ID, like web frameworks have been using for a long time. The session data is stored server-side.

https://cheatsheets.pragmaticwebsecurity.com/cheatsheets/jwt.pdf

jwt的思考的更多相关文章

  1. jwt 实践应用以及特殊案例思考

    JSON Web Token 是 rfc7519 出的一份标准,使用 JSON 来传递数据,用于判定用户是否登录状态. jwt 之前,使用 session 来做用户认证. 以下代码均使用 javasc ...

  2. spring cloud实战与思考(五) JWT之携带敏感信息

    需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...

  3. spring cloud实战与思考(四) JWT之Token主动失效

    需求: JWT泄露.密码重置等场景下,需要将未过期但是已经不安全的JWT主动失效. 本文不再复述JWT的基础知识,不了解的小伙伴可以自行Google一下.这里主要是针对以上需求聊一聊解决方案.如果服务 ...

  4. 关于JWT(Json Web Token)的思考及使用心得

    什么是JWT? JWT(Json Web Token)是一个开放的数据交换验证标准rfc7519(php 后端实现JWT认证方法一般用来做轻量级的API鉴权.由于许多API接口设计是遵循无状态的(比如 ...

  5. 关于Jwt的一些思考

    在使用jwt的过程中发现了两个问题续期和退出的问题. 续期 因为jwt的token在签发之后是有过期时间的,所以就存在管理这个过期时间的问题.我看网上有提出解决方案的大致有下面几个 每次更新过期时间, ...

  6. 看图理解JWT如何用于单点登录

    单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处.自从上次研究过JWT如何应用于会话管理,加之以前的项目中也 ...

  7. js文件被浏览器缓存的思考

        我们的用户量大,修改js文件后,用户反馈登录出现问题.实际上刷新一下就没事了.就是因为用户的浏览器使用的还是本地缓存的js代码.   强制刷新一般就会重新去服务器获取新的js代码.但不能让用户 ...

  8. spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法

    spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法 前言 本篇接着<spring boot / cloud ...

  9. 初识SSO与JWT

    以前在学校做项目的时候,登录注销,权限验证这些事情,都是交给框架来做的,每次都是把这个架子拿到项目中去,也没有真正思考过它的过程,总觉的这些都是十分简单的逻辑. 然而来公司工作之后,慢慢觉得登录和权限 ...

随机推荐

  1. linux 系统添加jdk环境变量

    export JAVA_HOME=/usr/local/jdk1..0_79 export JAVA_BIN=$JAVA_HOME/bin export PATH=$PATH:$JAVA_BIN ex ...

  2. docker配置阿里云的仓库源以及安装docker-compose

    [root@localhost mnt]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://3la ...

  3. 为什么JDK代码这样写?final ReentrantLock takeLock = this.takeLock

    在CopyOnWriteArrayList的源码中有一个细节值得学习,就是在addIfAbsent方法中ReentrantLock的用法,先是将一个这个成员变量this.lock重新赋值给一个局部变量 ...

  4. dlib-android

    https://travis-ci.org/tzutalin/dlib-android https://github.com/tzutalin/dlib-android-app https://git ...

  5. 二代身份Zheng复印(手机正反面拍照生成1:1复印件图像)

    下载地址 2017年7月28日 1.支持文字水印:2.优化程序,修复Bug:3.升级版本为1.1. 2017年7月17日1.二代身份*证正面(白色按钮).反面(蓝色按钮)拍摄后,退出APP自动生成A4 ...

  6. IPv4分类

    IPv4地址按逻辑层次分为五类 A类 保留给政府机构 A类地址第1字节为网络地址,其它3个字节为主机地址.它的第1个字节的第一位固定为0. A类地址网络号范围:1.0.0.0 - 126.0.0.0 ...

  7. LeetCode 104. Maximum Depth of Binary Tree(二叉树深度)

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  8. [整理] linux ubuntu 服务器键盘设置错误 完美解决

    根据 原文来源:https://blog.csdn.net/mingjie1212/article/details/48525095 进行修改. 使用命令 dpkg-reconfigure keybo ...

  9. less 多行溢出显示省略号无效

    .body { font-size:14px; font-weight:400; line-height:22px; /*! autoprefixer: ignore next */ -webkit- ...

  10. 词向量 词嵌入 word embedding

    词嵌入 word embedding embedding 嵌入 embedding: 嵌入, 在数学上表示一个映射f:x->y, 是将x所在的空间映射到y所在空间上去,并且在x空间中每一个x有y ...