讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过 对 Cookie 设定高度精准的 Domain 限制 抵御跨子域的 Cookie 劫持与篡改攻击

陌枫大大_4881

陌枫大大_4881

发布时间:2026-05-25 09:07:37

|

821人浏览过

|

来源于php中文网

原创

抵御跨子域Cookie劫持的核心是精确设置Domain属性:禁用前导点号,静态指定完整域名(如'app.dev.fox.com')或主域('dev.fox.com'),或多入口时通过白名单动态绑定;再叠加HttpOnly、Secure、SameSite=Lax构成纵深防御。

如何通过 对 cookie 设定高度精准的 domain 限制 抵御跨子域的 cookie 劫持与篡改攻击

要抵御跨子域的 Cookie 劫持与篡改,核心不是“加更多属性”,而是让 Cookie 只出现在它该出现的那个域名上——不多一分,不少一毫。Domain 属性一旦宽松,攻击面就指数级扩大;一旦精确,很多子域级越权和会话泄露问题自然消失。

严格禁用前导点号(.)是第一道防线

浏览器对 Domain 的解析遵循 RFC 6265:带前导点号(如 .dev.fox.com)表示“所有以 dev.fox.com 结尾的主机名”,即 app.dev.fox.com、api.dev.fox.com、甚至 evil.dev.fox.com 都能收到并发送该 Cookie。这不是 Django 的 bug,而是浏览器标准行为。

  • ❌ 错误写法:SESSION_COOKIE_DOMAIN = '.dev.fox.com' → 所有子域共享会话,极易被劫持
  • ✅ 正确写法:SESSION_COOKIE_DOMAIN = 'app.dev.fox.com' → 仅该完整域名可读写,其他子域完全隔离
  • ✅ 同样安全:SESSION_COOKIE_DOMAIN = 'dev.fox.com' → 仅主域生效,不含任何子域(注意:这不等于通配)

按请求 Host 动态绑定域名,实现多入口零共享

当应用需支持多个独立子域(如 admin.dev.fox.com 和 user.dev.fox.com),且要求彼此会话完全隔离时,静态配置无法满足。此时必须动态生成 Domain 值,并配合白名单校验防止 Host 头注入。

  • 在 settings.py 中设为 SESSION_COOKIE_DOMAIN = None,关闭默认写入
  • 编写中间件,从 request.get_host() 提取主机名(自动剥离端口)
  • 只允许预定义白名单内的域名作为 cookie_domain,例如:['admin.dev.fox.com', 'user.dev.fox.com']
  • 将匹配成功的域名直接赋值给 request.session.cookie_domain,Django 会在响应头中如实写出

配合 HttpOnly + Secure + SameSite=Lax 构成纵深防御

精准 Domain 是基础,但单靠它无法防 XSS 窃取或 MITM 篡改。必须叠加三项关键属性:

NotebookLM CLI Cookies
NotebookLM CLI Cookies

使用 nlm CLI 检索并回答已上传至 NotebookLM 的文档问题。适用于用户需要查找信息、总结来源或查询特定笔记本时。

下载
  • HttpOnly:阻止 JavaScript 读取 Cookie(防 XSS 盗取 sessionId)
  • Secure:强制仅 HTTPS 传输(防明文截获)
  • SameSite=Lax:默认阻止跨站 POST 请求携带 Cookie(防 CSRF,同时保留导航类 GET 的可用性)

这些属性需在 Django 设置中统一开启:SESSION_COOKIE_HTTPONLY = True、SESSION_COOKIE_SECURE = True、SESSION_COOKIE_SAMESITE = 'Lax'。它们与 Domain 精确控制协同工作,缺一不可。

不推荐依赖 IP 绑定等客户端侧方案

有人尝试用 JavaScript 在前端将 Cookie 与用户 IP 绑定,或服务端校验请求 IP 是否匹配首次登录 IP。这类做法存在明显缺陷:

  • 用户可能使用 NAT、代理或移动网络,IP 频繁变动导致正常用户反复掉线
  • JavaScript 绑定完全不可信(可被绕过),服务端校验 IP 也易受 X-Forwarded-For 伪造影响
  • 增加复杂度却未显著提升安全性,反而损害体验和可观测性

真正有效的隔离,来自服务端对 Domain 的刚性控制 + 标准安全属性的强制启用,而非在不可信环节叠加强制逻辑。

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
cookie
cookie

Cookie 是一种在用户计算机上存储小型文本文件的技术,用于在用户与网站进行交互时收集和存储有关用户的信息。当用户访问一个网站时,网站会将一个包含特定信息的 Cookie 文件发送到用户的浏览器,浏览器会将该 Cookie 存储在用户的计算机上。之后,当用户再次访问该网站时,浏览器会向服务器发送 Cookie,服务器可以根据 Cookie 中的信息来识别用户、跟踪用户行为等。

11919

2023.06.30

document.cookie获取不到怎么解决
document.cookie获取不到怎么解决

document.cookie获取不到的解决办法:1、浏览器的隐私设置;2、Same-origin policy;3、HTTPOnly Cookie;4、JavaScript代码错误;5、Cookie不存在或过期等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1146

2023.11.23

阻止所有cookie什么意思
阻止所有cookie什么意思

阻止所有cookie意味着在浏览器中禁止接受和存储网站发送的cookie。阻止所有cookie可能会影响许多网站的使用体验,因为许多网站使用cookie来提供个性化服务、存储用户信息或跟踪用户行为。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

804

2024.02.23

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1906

2025.08.19

DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

6521

2024.08.14

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

60

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

40

2026.10.16

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

40

2026.10.16

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

20

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Revel 官方 app.conf 文档
Revel 官方 app.conf 文档

共0课时 | 0人学习

php注册登录系统开发实战
php注册登录系统开发实战

共10课时 | 13.8万人学习

PHP基于Cookie的购物车模块设计
PHP基于Cookie的购物车模块设计

共10课时 | 11.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn