我正在尝试了解 JWT,并在网上浏览各种资源。我找到了显示如何检查 JWT 是否经过调和的代码——这是一个很棒的代码,我理解它。
但是,我不明白 JWT 不会被中间人使用,他们可以查看浏览器数据(想想图书馆中的公共(public)计算机)或嗅探电线(我想这可以通过 HTTPS 来避免) ) 获取 GWT 字符串,并从另一台计算机重播。
https://float-middle.com/json-web-tokens-jwt-vs-sessions/
[headerB64, payloadB64, signatureB64] = jwt.split('.');
if (atob(signatureB64) === signatureCreatingFunction(headerB64 + '.' + payloadB64) {
// good
} else
// no good
}
最佳答案
的确,他们可以。您可以采取措施防止这种情况发生,例如,将请求者的 IP 地址封装在加密数据中,并为 token 提供相对较短的生存时间。但是,关键思想是接收系统有仅限 要对其进行操作的 token 及其加密内容。服务器可以验证 token 是否有效并且知道它没有被更改,但是,由于没有“ session ”,它无法检测到重放攻击,除非 token 的内容允许它这样做。 (因此,这样做!)
关于security - Json Web Token (JWT) 究竟是如何减少人在循环攻击的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38018469/