- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新 : 我已经结束了对这个问题的研究,并发表了一篇长篇博文来解释我的发现:The Unspoken Vulnerability of JWTs .我解释了使用 JWT 进行本地身份验证的巨大插入力如何遗漏了一个关键细节:必须保护签名 key 。我还解释说,除非您愿意竭尽全力保护 key ,否则最好通过 Oauth 委托(delegate)身份验证或使用传统的 session ID。
我已经看到很多关于 JSON Web token 安全性的讨论——重放、撤销、数据透明度、 token 指定的算法、 token 加密、XSS、CSRF——但我没有看到任何对依赖于签名 key 。
如果有人破坏了服务器并获得了 JWT 签名 key ,在我看来,此人随后可以使用该 key 来伪造未过期的 JWT 并 secret 获得访问权限。当然,服务器可以在每个请求上查找每个 JWT 以确认其有效性,但服务器完全使用 JWT,因此它们不必这样做。服务器可以确认 IP 地址,但如果 JWT 不可信,这也涉及查找,显然这样做会排除可靠的移动访问。
将此与基于 session ID 的服务器入侵进行对比。如果此服务器正在对密码进行哈希处理,则攻击者必须在 session ID 过期之前为每个用户单独获取和使用 session ID。如果服务器只存储 session ID 的哈希值,攻击者将不得不写入服务器以确保访问。无论如何,似乎攻击者的优势较小。
我发现一种使用 JWT 的架构没有这个缺点。反向代理位于外部不受信任的客户端和内部微服务的后端集合之间,described here by Nordic APIs .客户端从授权服务器获取不透明 token ,并使用该 token 与服务器应用程序通信以处理所有请求。对于每个请求,代理将不透明 token 转换为 JWT 并缓存它们的关联。外部世界从不提供 JWT,从而限制了窃取 key 造成的损害(因为代理转到身份验证服务器以确认不透明的 token )。但是,这种方法需要取消引用每个客户端 token ,就像 session ID 需要取消引用每个请求一样,从而消除了 JWT 对客户端请求的好处。在这种情况下,JWT 只允许服务在它们之间传递用户数据,而不必完全信任彼此——但我仍在尝试理解这种方法的值(value)。
我的担忧似乎只适用于不受信任的客户端使用 JWT 作为身份验证 token 。然而,包括 Google API 在内的许多知名 API 都在使用 JWT。我错过了什么?也许服务器违规很少是只读的?有没有办法降低风险?
最佳答案
我相信你在想这个错误的方式。不要误会我的意思,您正在考虑安全性很好,但是您在服务器端仔细检查事物、添加违反无状态 session 目标的额外检查等方面的处理方式似乎是一致的一条通往你自己理智尽头的单行道。
总结两种标准方法:
关于security - 破坏基于 JWT 的服务器是否更具破坏性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495362/
我的按钮有问题。该按钮是登录按钮。当我在输入凭据后单击回车时,将触发查看凭据是否正确的方法。这没有任何问题。 但还应该发生的是,在检查这些凭据是否正确之后,登录和注册按钮应该会被删除,同时会出现一个新
因此,我尝试以 Angular 显示多个 View ,以帮助解决我正在构建的网站中遇到的页脚问题。我想确保我一直在阅读和尝试模仿的内容是有意义的。这就是我到目前为止所拥有的。 index.html
我正在尝试创建可调整大小的 div 容器,而且它们是可拖动的。 我使用了 Angular Material 拖放和 angular resizable element 这是解决方法 https://s
我正在尝试创建可调整大小的 div 容器,而且它们是可拖动的。 我使用了 Angular Material 拖放和 angular resizable element 这是解决方法 https://s
我是一名优秀的程序员,十分优秀!