将 jwt 暴露给客户端可能会导致安全问题

Posted

技术标签:

【中文标题】将 jwt 暴露给客户端可能会导致安全问题【英文标题】:exposing jwt to client can cause security issue 【发布时间】:2019-02-24 05:41:35 【问题描述】:

JWT 令牌始终暴露给客户端,无论是存储在localStorage 还是cookies。我在某处读到通过套接字(socket.io) 中的查询参数发送 jwt 令牌是一个坏主意,但为什么呢?令牌没有密码,我只是不明白它如何导致安全问题,客户端jwt令牌不是一直存在吗?

【问题讨论】:

【参考方案1】:

您是对的,JWT 令牌通常可以通过 cookie 或本地存储在客户端访问。它们通常包含低风险信息,例如“联系信息”或基本用户详细信息,因此不会涉及太多安全风险。

至于通过 Socket.io 中的查询字符串传递它,尽管它可能不会有太大的风险,但以可读的方式包含任何用户信息(例如查询参数)违反了最佳实践。

如果你好奇,这篇文章有类似的观点和更好的解决方案:

https://facundoolano.wordpress.com/2014/10/11/better-authentication-for-socket-io-no-query-strings/

【讨论】:

以上是关于将 jwt 暴露给客户端可能会导致安全问题的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS检测工具可能会弱化安全

代码安全 | 第二十六期:通过错误消息导致的信息暴露

网站Git仓库暴露及不安全文件权限配置可能引发的的安全问题

存储在 cookie 中的 JWT - 安全问题

如何以安全的方式为客户提供 JSON Web 令牌(JWT)?

JWT-token—前后端分离架构的api安全问题