authentication - Refresh-Token (JWT) 如何避免中间人攻击?
问题描述
我最近使用 DotNet 核心身份实现了 JWT Auth。
我知道要减少获得访问令牌的身份验证次数(当它在短时间内到期以提高安全性时)我们使用刷新令牌来更新访问令牌而不是重新身份验证。
我认为如果中间人试图窃取 Refresh-Token 以获取新的 Access-Token 并发出请求(劫持令牌),系统如何找到它并拒绝请求?
我的意思是,如果 JWT 被某人盗用冒充,服务器识别它并拒绝它,是否有解决方案?(我知道 SSL 可以提供帮助,但我正在考虑其他方式。例如,按时间和 Ip 加密 JWT 或 .... ?)
解决方案
假设您在服务器和客户端之间使用两种方式的 SSL,那么您的担忧主要是没有意义的。原因是任何中间人,如果他找到拦截的方法,甚至都不知道 JWT 的开始和结束位置。相反,他只会被一些编码的混乱所困。假设,如果有人持有 JWT,那么是的,他可能能够冒充您的一个用户。这与有人偷信用卡然后伪装成所有者没有什么不同。但是,由于 SSL,这种情况发生的可能性很小。
推荐阅读
- mysql - 如何匹配mysql中的n个属性
- javascript - 捕捉之间的一切
- c# - 使用继承、泛型、接口 c# 的正确请求和响应模式
- c++ - 将字符串变量注入/转义到字符串中的正确方法是什么
- javascript - 将 ES6 Maps 用于 react-router,我们如何调整 Map.get?
- css - 小技巧:bootstrapdocs.com 导航栏示例(Bootstrap 3.3)
- javascript - 区分 JavaScript 中的普通函数或闭包?
- java - Glassfish 服务器在应找到页面的路径上显示错误 404
- python-xarray - 使用 xarray groupby_bins 导致坐标是一个对象并且不能保存在 netcdf 文件中
- c# - 如何将运行附加到 FlowDocument 中的现有段落?