我正在尝试了解JWT,并在网上浏览各种资源。我发现代码显示了如何检查JWT是否经过调整 - 这是一个很好的,我理解它。
但是,我不明白JWT是如何被中间人使用的,他可以查看浏览器数据(想想库中的公共计算机)或嗅探线(我猜这可以通过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
}
答案 0 :(得分:4)
确实,他们可以。您可以采取措施来阻止这种情况,例如,将请求者的IP地址封装在加密数据中,并为令牌提供相对较短的生存时间。但是,关键的想法是接收系统只有 令牌及其加密内容才能采取行动。服务器可以验证令牌是否有效并且知道它没有被更改,但是,由于没有“会话”,它将无法检测到重放攻击,除非内容 token使它能够这样做。 (因此,请这样做!)