Cookie 安全性问题
|
freeflydom
2025年5月13日 10:20
本文热度 91
|
1. 如何实现安全的 HttpOnly 和 Secure Cookie?
问题:防止 XSS 攻击窃取 Cookie,同时确保仅通过 HTTPS 传输。
解决方案:
2. 跨域请求如何携带 Cookie?
问题:CORS 请求默认不发送 Cookie,需显式配置。
解决方案:
前端配置(Axios):
axios.get('https://api.example.com/data', {
withCredentials: true
});
服务端配置(Nginx):
add_header 'Access-Control-Allow-Origin' 'https:
add_header 'Access-Control-Allow-Credentials' 'true';
注意:Access-Control-Allow-Origin
不能为 *
。
3. 如何实现 Cookie 的自动续期?
问题:用户长时间未操作但保持登录状态。
解决方案:
4. Cookie 与 LocalStorage 如何选择?
对比:
特性 | Cookie | LocalStorage |
---|
容量 | ≤4KB | ≥5MB |
自动传输 | 是(通过请求头) | 否 |
安全性 | 可设 HttpOnly /Secure | 易被 XSS 窃取 |
适用场景 | 会话管理、身份验证 | 持久化本地数据(如主题设置) |
5. 如何防御 Cookie 劫持?
解决方案:
6. 如何实现分布式系统的 Session 共享?
问题:多台服务器需共享用户会话状态。
解决方案:
Redis 集中存储(Node.js + Redis):
const session = require('express-session');
const RedisStore = require('connect-redis')(session);
app.use(session({
store: new RedisStore({ host: 'redis-server' }),
secret: 'your-secret',
resave: false
}));
转自https://juejin.cn/post/7503390744385519627
该文章在 2025/5/13 10:20:33 编辑过