作者:张芬921_162 | 来源:互联网 | 2024-12-19 20:06
当使用JSON Web Tokens (JWT)作为身份验证机制时,一个常见的安全实践是将JWT存储在HTTP-only的COOKIE中,而不是浏览器的localStorage中。这是因为localStorage中的数据可以通过Javascript代码直接访问,这使得它们容易受到跨站脚本攻击(XSS)的影响。通过将JWT存储在HTTP-only COOKIE中,可以防止Javascript代码读取或修改COOKIE的内容,从而增加了一层安全性。
要实现这一点,首先需要在后端设置响应头,具体做法是在发送包含JWT的响应时,添加一个Set-COOKIE头部,格式如下:
Set-COOKIE: jwt=your.jwt.token; HttpOnly; Secure; SameSite=Strict;
上述代码中的各个参数含义如下:
- jwt=your.jwt.token: 这是你生成的JWT令牌。
- HttpOnly: 设置此标志后,浏览器将不允许通过Javascript访问该COOKIE。
- Secure: 表示这个COOKIE只能通过HTTPS协议传输。
- SameSite=Strict: 防止跨站请求伪造(CSRF)攻击,确保COOKIE不会随着跨站请求一起发送。
通过这种方式配置后,客户端每次发起请求时,浏览器会自动将这个HTTP-only COOKIE与请求一起发送到服务器,而无需前端代码显式地从localStorage中读取并设置JWT。