文档章节

JWT(Json web token)

lemonwater
 lemonwater
发布于 2017/09/08 15:06
字数 569
阅读 21
收藏 1

首先了解一下JWT使用过程:
Token 是服务器端在验证客户端user_id/pwd 没问题后, 签发给客户端的, 作为标示该用户的一个令牌, 之后客户端就使用该令牌和服务器端进行交互.  

Token的根本作用:
就一点: 用于服务器端标示是哪个用户的请求

JWT 安全吗? 
基本上很安全, 否则就没有人用了, 具体分析:
1. JWT 令牌可以防止信息伪造, 服务器在生成token中的signature部分, 可以使用一些高级的加密算法, 比如使用HMAC算法 + Secret key, 因为Secret key是只有服务器知道, 所以别人仿造不了. 随意仿造, JWT token的完整性就改变了. 
2. JWT 令牌可以防止重放攻击. JWT不好伪造, 如果整个token被人直接套牌不也可以吗? token中增加失效期设置, 这样就缩小了重放攻击的窗口. 
3. token 作为 http head的 authentication 取值, 本身是明文的, 可以上 https, 这样 token 也被加密了. 在公网下, https是必须的, 尤其是登录环节, 明文提交用户名/密码明文太可怕了. 

关于防止被套牌, 除了增加失效期属性, 还可以做进一步工作, 具体为:
  客户端请求令牌时候, 不仅需要提交 user_id/pwd, 而且需要提交一个 device_id, 也就是说 user_id对应一个有效的令牌, 同时在server端的user表中将token和device_id都存下来, 如果下次客户端来自其他设备, 查询 user表中的token和device_id, 如果请求中的token或device_id和user表不一致, 清空user表的token, 即在服务器端强制标记该token失效. 
  除非安全要求很严, 否则不推荐这么复杂的作法,JWT的token本来可以在server端通过算法验证的, 不需要查询数据表, 而现在引入了数据表, 如果觉得这个方式丑陋, 可以持久化到redis而不是user表中. 
 

================================
更多文档  
================================
基于Token的WEB后台认证机制 http://www.cnblogs.com/xiekeli/p/5607107.html
JSON Web Token (JWT) 简介 https://mozillazg.github.io/2015/06/hello-jwt.html
jwt官网 https://jwt.io

本文转载自:http://www.cnblogs.com/harrychinese/p/jwt.html

共有 人打赏支持
lemonwater
粉丝 3
博文 62
码字总数 6420
作品 0
西安
[笔记] JWT Java Json Web Token (一)

jwt实现 JWT简单介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。J...

z201
2017/10/22
0
0
深入浅出JWT(JSON Web Token )

1. JWT 介绍 JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用于在各方之间以JSON对象安全传输信息。 这些信息可以通...

mantoudev
05/05
0
0
JSON Web Token jwt

文章转自:http://www.ruanyifeng.com/blog/2018/07/jsonweb_token-tutorial.html JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题...

daos
08/29
0
0
JSON Web Token 入门教程

JSON Web Token 入门教程 作者: 阮一峰 日期: 2018年7月23日 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开...

祖冲之
07/24
0
0
八幅漫画理解使用JSON Web Token设计单点登录系统

八幅漫画理解使用JSON Web Token设计单点登录系统 Sep 07, 2015 in Engineering 上次在《JSON Web Token - 在Web应用间安全地传递信息》中我提到了JSON Web Token可以用来设计单点登录系统。...

祖冲之
07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部