LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Cookie 安全性问题

freeflydom
2025年5月13日 10:20 本文热度 76

1. 如何实现安全的 HttpOnly 和 Secure Cookie? ‌

问题‌:防止 XSS 攻击窃取 Cookie,同时确保仅通过 HTTPS 传输。
解决方案‌:

  • 服务端设置‌(Node.js 示例):

    res.setHeader('Set-Cookie', [
      'token=abc123; HttpOnly; Secure; SameSite=Strict',
      'theme=dark; HttpOnly; Secure; Max-Age=3600'
    ]);
    
    • HttpOnly:禁止 JavaScript 访问 Cookie。
    • Secure:仅允许 HTTPS 传输。
    • SameSite=Strict:阻止 CSRF 攻击。

‌2. 跨域请求如何携带 Cookie? ‌

问题‌:CORS 请求默认不发送 Cookie,需显式配置。
解决方案‌:

  • 前端配置‌(Axios):

    axios.get('https://api.example.com/data', {
      withCredentials: true  // 允许携带 Cookie
    });
    
  • 服务端配置‌(Nginx):

    add_header 'Access-Control-Allow-Origin' 'https://your-app.com';
    add_header 'Access-Control-Allow-Credentials' 'true';
    

    注意‌:Access-Control-Allow-Origin 不能为 *

‌3. 如何实现 Cookie 的自动续期? ‌

问题‌:用户长时间未操作但保持登录状态。
解决方案‌:

  • 滑动过期时间‌(JWT 示例):

    function refreshToken(oldToken) {
      const newExpiry = Date.now() + 30 * 60 * 1000; // 延长 30 分钟
      return jwt.sign({ ...jwt.decode(oldToken), exp: newExpiry }, secret);
    }
    
    • 每次请求验证 Cookie 后,重置过期时间。

‌4. Cookie 与 LocalStorage 如何选择? ‌

对比‌:

‌特性‌‌Cookie‌‌LocalStorage‌
容量≤4KB≥5MB
自动传输是(通过请求头)
安全性可设 HttpOnly/Secure易被 XSS 窃取
适用场景会话管理、身份验证持久化本地数据(如主题设置)

‌5. 如何防御 Cookie 劫持? ‌

解决方案‌:

  • SameSite 属性‌:

    httpCopy Code
    Set-Cookie: sessionId=123; SameSite=Lax; Secure
    
    • Lax:允许同站和导航跳转请求携带 Cookie。
    • Strict:完全禁止跨站携带7。
  • 绑定 User-Agent/IP‌:

    // 服务端验证 Cookie 时检查 User-Agent
    if (req.cookies.token && req.headers['user-agent'] === storedUA) {
      // 允许访问
    }
    

    注意‌:IP 绑定可能误伤动态 IP 用户。

‌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
    }));
    
    • 所有服务器从 Redis 读写 Session。

​转自https://juejin.cn/post/7503390744385519627


该文章在 2025/5/13 10:20:33 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved