我一直在使用 JSON Web Tokens 并阅读有关如何使应用程序更安全的信息。当用户被授权时,令牌被签名,并且令牌将被放置在 Authorization Header 中。然后可以将此令牌放置在 localStorage、sessionStorage 或 cookieStorage 中。最后一个选项是最安全的选项,但我想知道 JSON Web 令牌、任何中间件或 JSON Web 加密(不确定这是如何工作)的任何功能是否可以防止恶意攻击者拦截/抓取该令牌,并将其用于未来对应用程序 API 的请求,因为所需的只是一个带有该令牌的请求,以便愚蠢的服务器响应请求的信息。
JSON Web 令牌安全性
信息安全
单页应用
jwt
2021-08-30 03:31:45
2个回答
- 通过 TLS 发送令牌。
- 使用一对私钥/公钥(即 RSA、ECDSA)对令牌进行签名,以防止篡改(您不要使用共享的秘密!)。
- 如果您的令牌被盗,攻击者只能在短时间内使用它。您可以将过期时间设置为 15 分钟。
- JSON Web 加密 (JWE) 提供内容的机密性。您可以使用非对称加密来发送机密内容。请参阅此示例。
保护用户凭证 - 会话 Cookie 与。JWT: - 在您的服务器上实施 HTTPS,并通过此安全通道发布登录表单 - 将会话 ID 存储在只能通过安全通道发送到您的服务器的安全、仅限 HTTPS 的 cookie 中 - 防止恶意代码 (XSS) :不要使用本地存储 - 使用 JSON Web 令牌来保护您的 Web 应用程序 UI:3 部分:
Header:
{
"typ":"JWT",
"alg":"HS256"//ALGORITHM HS256 are specifically designed to PREVENT alteration of the payload
}
JWT: should be signed with a private signing key
Body:
{
"iss":"your site"//Who issued this token,
"exp": //timestamp,//set the good expiration time
"sub": "users/105898"//user ID,
"scope": "self api/comment"//What this user can do
}
笔记:
- 在验证传入的 JWT 时,请注意您认为有效的内容
- 如果 JWT 库发生了足够多的变化,那么您正在使用的库可能不得不以破坏与您的代码兼容性的方式进行更改。关注链接
其它你可能感兴趣的问题