所有Web服务的Cookie配置必须包含以下5项,任意缺失会有XSS、CSRF攻击风险,以下为每个属性的实操写法:
作用:限制Cookie仅在HTTPS协议下传输,防止明文窃取。必须配置,线上环境强制开启,本地开发(HTTP)可暂关。
作用:禁止JavaScript读取Cookie,避免XSS攻击窃取用户凭证。必须配置,前端不得通过document.cookie获取敏感Cookie。
作用:限制第三方网站发送该Cookie,防范CSRF攻击。可选值:Strict/None/Lax,线上推荐用Lax,跨域接口用None(需配合Secure)。必须配置,不能依赖浏览器默认值。
作用:精准限制Cookie的作用范围,避免跨路径/跨站点污染。Path必须设为当前服务根路径(/);Domain仅设置当前一级域名(如example.com),禁止设置顶级域(如.com)。
作用:设置Cookie有效期,避免长期存储敏感凭证。敏感Cookie(如登录态)MaxAge设为≤24小时,非敏感Cookie最长不超过7天,禁止永久有效。

以下是3种主流技术栈的完整可直接运行的Cookie安全配置,无修改即可落地:
需先安装cookie-parser:执行npm install cookie-parser,再添加如下代码:
``` const cookieParser = require('cookie-parser'); app.use(cookieParser()); // 安全设置登录态Cookie示例 app.get('/set-login-cookie', (req, res) => { res.cookie('user_id', '123456789', { secure: true, httpOnly: true, sameSite: 'Lax', path: '/', domain: 'example.com', maxAge: 86400, // 24小时,敏感Cookie上限 overwrite: true // 避免重复Cookie冲突 }); res.send('Cookie安全设置完成'); }); // 跨域接口设置SameSite=None的示例(需配合secure:true) app.get('/set-cross-cookie', (req, res) => { res.cookie('token', 'abcdefghijk', { secure: true, httpOnly: true, sameSite: 'None', path: '/', domain: 'api.example.com', maxAge: 3600 }); res.send('跨域Cookie设置完成'); }); ```在站点配置文件(如/etc/nginx/conf.d/example.com.conf)的server块中添加,示例:
``` server { listen 443 ssl; server_name example.com; 代理Cookie自动追加安全属性(无需修改应用代码) proxy_cookie_path / "/; Secure; HttpOnly; SameSite=Lax; Max-Age=86400; Domain=example.com"; location / { proxy_pass http://127.0.0.1:3000; } } ```修改后执行nginx -t验证配置,再执行nginx -s reload生效。
适用于PHP7.3+,直接复制如下代码:
``` // 安全设置Cookie的完整写法 setcookie( 'user_id', // Cookie名称 '123456789', // Cookie值 [ 'expires' => time() + 86400, // 24小时有效期 'path' => '/', 'domain' => 'example.com', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ] ); // 跨域SameSite=None的写法 setcookie( 'token', 'abcdefghijk', [ 'expires' => time() + 3600, 'path' => '/', 'domain' => 'api.example.com', 'secure' => true, 'httponly' => true, 'samesite' => 'None' ] ); ```配置完成后必须验证,确保属性生效,步骤:
避免以下错误导致配置失效:
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图