node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > Web Cookie安全防御与跨域

Web中Cookie的安全防御与跨域实践深入解析

作者:╰つ栺尖篴夢ゞ

这篇文章主要介绍了Web中Cookie安全防御与跨域实践的相关资料,详细介绍了Cookie的生成、读取、修改和删除方法,并讨论了客户端能否修改Cookie、Cookie能否实现跨域访问以及一些常见问题,需要的朋友可以参考下

一、什么是 Cookie?

二、Cookie 的结构与属性

Set-Cookie: sessionId=abc123; Domain=.example.com; Path=/shop; Expires=Wed, 21 Oct 2026 07:28:00 GMT; Secure; HttpOnly; SameSite=Lax
属性含义结构
Domain指定哪些主机可以接收该 Cookie。默认为当前域名(不含子域)Domain=.example.com 允许所有 *.example.com 子域共享此 Cookie
Path指定 URL 路径下才发送 CookiePath=/shop 表示仅当请求 /shop 或其子路径时携带
Expires / Max-Age控制有效期,Expires 指定绝对过期时间;Max-Age 指定相对秒数(现代优先),不设置则为会话级 Cookie(关闭浏览器即删除)Max-Age=3600 表示 1 小时后失效
Secure标记后,Cookie 仅能通过 HTTPS 协议传输防止中间人攻击窃取
HttpOnly标记后,无法通过 document.cookie 访问,只能由 HTTP 请求携带防范 XSS 攻击盗取 Cookie
SameSite控制跨站请求是否发送 Cookie 值:Strict、Lax、NoneSameSite=Lax(默认现代浏览器行为)允许通过顶级导航(如点击链接)发送,禁止 POST 表单跨站发送
Priority低优先级 Cookie 可能被浏览器优先清除Priority=High

三、Cookie 的作用域

四、Cookie 的实际使用场景

① 用户登录(会话管理)

② 记住“7 天免登录”

③ 记录用户偏好(如主题颜色)

④ 购物车(未登录状态)

⑤ A/B 测试分组

五、Cookie 的生成、读取、修改、删除

res.cookie('username', 'Alice', { maxAge: 900000, httpOnly: true, secure: true });
document.cookie = "color=blue; path=/; max-age=86400";
Cookie: sessionId=abc123; color=blue
// 修改名为 color 的值
document.cookie = "color=red; path=/";
document.cookie = "color=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";

六、客户端可以修改 Cookie 吗?

// 查看所有 cookie
console.log(document.cookie);

// 修改一个 cookie(直接覆盖)
document.cookie = "username=newValue; path=/";

// 添加新 cookie
document.cookie = "theme=dark; max-age=3600";

// 删除 cookie(设置过期时间为过去的时间)
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";

七、Cookie 可以实现跨域访问吗?

八、Cookie 的其他常见问题

document.cookie = `name=${encodeURIComponent('张三')}; path=/`;
document.cookie = "color=; expires=..."

到此这篇关于Web中Cookie的安全防御与跨域实践的文章就介绍到这了,更多相关Web Cookie安全防御与跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文