🏷️ 前端与移动端 📚 全库权威度:被 5 本专著深度引证 (出现 5 次) 阅读: 8分钟
难度: ★★★

同源策略

Same-origin policy

📌 概念释义与技术定位 (Definition & Overview)

同源策略是浏览器基于协议、域名和端口号定义的严格安全隔离机制,旨在防止恶意脚本跨源窃取数据或篡改 DOM,是 Web 安全基石。

💡 核心定义 (What)

同源策略(Same-origin Policy)是浏览器内置的核心安全机制,由 Netscape Navigator 2.0 于 1995 年首创,旨在防止恶意脚本通过跨域访问窃取敏感数据或篡改 DOM。该策略将资源划分为“同源”与“异源”,仅当两个 URL 的协议(scheme)、主机名(host)和端口号(port)三者完全一致时,才被视为同源。其本质是浏览器对脚本执行环境的沙箱隔离,强制规定跨源脚本无法直接访问另一源的 DOM、Cookie 或发起 AJAX 请求,从而构建起 Web 应用间的基本信任边界。

🎯 技术定位与背景 (Why)

在现代计算架构中,同源策略扮演着“默认拒绝”的安全守门人角色,是 Web 生态信任模型的起点。尽管它限制了前端代码的自由度,但也有效遏制了 CSRF、XSS 等跨站攻击。随着 Web 应用的复杂化,该策略已成为跨域通信(CORS)、混合内容(Mixed Content)及混合协议(Mixed Protocol)等现代 Web 特性的前提约束。理解同源策略不仅是前端开发者的基本功,更是构建高安全等级 Web 应用架构的基石,其严格的同源判定逻辑直接决定了资源加载、事件委托及状态管理的实现方式。

⚙️ 核心架构与工作机制 (Technical Mechanism)

同源策略的底层运行机制依赖于浏览器内核对 URL 的标准化解析与哈希比对。当脚本尝试访问外部资源(如读取 DOM、发送 AJAX 请求)时,浏览器会提取当前执行上下文与目标资源的 URL,分别解析出协议、主机名和端口号。若三者不完全匹配,则触发同源校验失败,拦截后续操作。这一机制在数据流层面表现为:同源请求直接透传至网络层,而异源请求则被拦截并抛出安全错误(如 Mixed-Content Blocked)。此外,该策略不仅限制数据读取,还深度介入 DOM 操作,禁止跨源脚本直接操作另一源的 DOM 节点,从而防止恶意注入。值得注意的是,现代浏览器在实现上存在细微差异,例如早期 IE 版本曾忽略端口号差异,而现代标准则严格执行端口匹配,且对混合协议(HTTP 加载 HTTPS 资源)采取更激进的阻断策略。

📖 权威专著深度引证与原文精粹 (Expert Book Insights)

5 本专著引用
1

《API安全实战》

✍️ 作者: 尼尔·马登

“因为新站点的来源不同,所以第4章介绍的同源策略(SOP)会给基于Cookie的身份验证带来几个问题: - 尝试从新站点发送的登录请求会被阻止,因为SOP不允许请求中包含JSON Content-Type头。”

2

《白帽子讲Web安全》

✍️ 作者: 吴翰清

“2 其他安全问题 6.2.1 Cross-Origin Resource Sharing 浏览器实现的同源策略(Same Origin Policy)限制了脚本的跨域请求。”

3

《黑客大曝光:Web应用程序安全(原书第3版) (信息安全技术丛书) ((美)斯坎布雷(Scambray, J.) (美)刘》

✍️ 作者: Liu etc.

“这种安全模型有时被称为同源策略(Same-origin policy),源于Netscape Navigator浏览器的早期版本。”

4

《Web应用安全权威指南》

✍️ 作者: 德丸浩

“◆同源策略 同源策略(Same Origin Policy)是禁止 JavaScript 进行跨站访问的安全策略。”

5

《黑客攻防技术宝典:浏览器实战篇》

✍️ 作者: etc.

“第4章 绕过同源策略 本质上来说,同源策略(SOP)就是限制一个网站与另一个网站之间建立通信。”

🚀 典型应用场景 (Industrial Applications)

1

跨域资源共享(CORS)的鉴权与响应头控制

2

混合内容(Mixed Content)的自动转换或阻断

3

跨域 AJAX/Fetch 请求的拦截与错误处理

4

同源策略下的 DOM 操作与事件委托限制

⚖️ 技术优势与工程权衡 (Trade-offs & Pros/Cons)

🟢 核心优势与技术特性

  • + 提供底层沙箱隔离,从根本上防止恶意脚本窃取敏感数据
  • + 无需额外配置即可生效,是浏览器原生内置的安全机制
  • + 有效遏制 CSRF、XSS 等跨站攻击,保障用户会话安全

🔴 工程考量与潜在挑战

  • - 强制隔离导致跨域数据交互复杂,需依赖 CORS 等额外机制
  • - 严格的同源判定限制了前端组件化与微前端架构的灵活性
  • - 混合协议与混合内容场景下可能引发用户体验中断

❓ 常见问题速查 (FAQ)

Q1

为什么在现代软件架构中需要重视 同源策略?

它为【前端与移动端】提供了低延迟、高可靠的工程化标准实现,解决了传统手工处理方式的效率短板。
Q2

在何种场景下应当优先选用 同源策略?

当系统面临扩展瓶颈、模块解耦需求,或需要融入主流行业生态时,选用该技术具备极高的综合回报率。

学术引证与可靠性指数

5

引用专著数

5

全库出现频次

本词条定义与原理解析直接溯源自行业权威专著与最新同行评审成果,保障工程决策严谨性。

推荐技术进阶路线

1
基础概念入门
2
核心技术原理
3
权威专著引证研读
4
工业生产落地与演进
返回 前端与移动端 列表