angular - 通过 JWT 验证登录用户
问题描述
我在 ASP.NET Core Web API 中使用 JWT 身份验证。我遵循的过程。
- 在服务器端生成令牌并将其发送给客户端。
- 客户端随每个请求在标头上发回令牌。\
- 服务器验证令牌并使用请求的信息进行响应。
我将令牌存储在客户端的本地存储中。我的问题是,
- 以两个不同的用户身份从两个不同的浏览器登录(使用用户名和密码登录,就像任何正常登录一样)。
- 交换存储在两个用户的本地存储中的令牌。
即使请求来自不同的用户,服务器仍会验证令牌是否有效。
简单地说,任何人都可以通过使用有效令牌修改本地存储来入侵系统。
如何解决这个安全漏洞?
解决方案
一种常见的预防方法是让 IP 成为已签名 JWT 的一部分(从他登录的地方)。由于这种安全问题,JWT 通常也使用安全机制进行存储。您可以根据客户端和您使用的框架研究存储 JWT 的最佳方式。
推荐阅读
- amazon-web-services - IoT 规则、SQS 主题和 Lambda 函数的无服务器配置
- javascript - 如何获取嵌套数组中的项目
- python - 创建新项目后缺少 Flask
- kotlin - 数据同步:根据对象的更改创建 Merkle 树
- mysql - SQL数据库中如何扣减数量?
- opencart - 如何为 Opencart 正确设置 schema.org
- ios - Create Waves 可视化歌曲 Swift
- reactjs - 是否可以在办公室 UI 结构详细信息列表中包装长标题名称行?
- go - 当非默认是输入通道时,为什么 go 中的选择总是进入默认情况?
- excel - 如何避免数据透视表中的汇总项目