IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 2022-05-11 双Token授权 -> 正文阅读

[网络协议]2022-05-11 双Token授权

前言

在求解token窃取问题中,发现了双Token的使用,这里梳理一下对双Token的理解,在后续去实践一个可靠的应用方案。

首先说一下避免token窃取问题,也就是避免中间人窃取服务器颁发Token,尽管我们设置的Token过期时间足够短,在该有效时间内中间人还是可以凭借Token做一些事情,这里可以使用Https(HTTP+SSL\TLS)协议解决这个问题;HTTPS是由授权机关颁发的凭证,再由这个凭证加密告知服务器对称密钥,而建立的安全通信(不能防止中间人抓包,双方都会像权威机关认证凭证是否合法)。

双Token是由access_token和refresh_token两个组成的,一个是短期有效的access_token,一般有效时间相对不长,30分钟或多或少(实际以场景进行变更),另一个是有效期较长的refresh_token,一般有效期一天或多或少;双Token可以实现长时间凭证有效(保持登录状态)、第三方登录;

提供大家参考,若有问题欢迎指出修改。

双Token授权

access_token 访问token

access_token:与单Token相同,服务器通过辨别access_token辨认该请求是否合法;若是合法用户,则正常访问;若是非法用户,则阻止访问;若 token过期,则通过校验refresh_token是否合法,合法则颁发新access_token,不合法则阻止访问。

这里的access_token过期时间会相对较短一些,肯定会产生疑问,既然有refresh_token为什么还要access_token,不停的更新不麻烦吗?

举例:如果我们颁发一个过期时间较长的token,若该用户出现问题,如何快速阻止该用户继续访问。这里access_token可以解决这个问题,因为access_token的过期时间短,下次需要重新授权时,可以拒绝授权。

refresh_token 刷新token

refresh_token:此token作用于access_token 时,通过refresh_token是否合法颁发access_token ;由于refresh_token是一个长时间有效的,所以建议refresh_token只能使用一次,并且为了避免中间人窃取refresh_token,生成的token条件需要根据访问用户的信息来产生,比如访问IP、MAC一些大概率不重复或者唯一的,进行二次区分,排除中间人窃取refresh_token进行使用。

建议

  • refresh_token只能使用一次
  • refresh_token生成规则需要进行设计,避免窃取
  • 建议B/S使用HTTPS协议来保证数据加密,不会造成明文传输

参考文章

Access Token & Refresh Token 详解以及使用原则
用 HTTPS 就安全了?HTTPS 会被抓包吗?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:12:53  更:2022-05-14 10:14:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:21:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码