security - Json Web Token (JWT) 究竟是如何减少人在循环攻击的?

标签 security jwt restful-authentication

我正在尝试了解 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/

相关文章:

c# - 从 JWT 中删除 "issuer"导致 401 Unauthorized

java - Spring Boot 安全 Rest API

休息oauth2

security - 使用 PBKDF2 作为密码哈希是否有标准?

javascript - Silverlight window.external.notify() 安全问题?

javascript - 具有单页应用刷新访问 token 的 Oauth2 隐式流程

java - 是否有可能根据 URL 同时为同一个 Web 应用程序使用一种方式和相互 SSL

javascript - 安全差异 jquery 表单提交与 ajax 发布?

php - 如何防止 PHP 中的 SQL 注入(inject)?

http - curl get to angular 2 http get 请求