同源策略限制了什么

同源策略限制了什么
最新回答
瑾沫流年

2026-10-25 10:17:07

同源策略是浏览器核心安全机制,主要限制跨源资源的交互访问,核心是隔离不同源的文档/脚本,防止恶意攻击。

一、同源的定义(必须同时满足)
1. 协议相同:如均为`http`或`https`,协议不同则非同源(如`
http://example.com
`与`
https://example.com
`)。
2. 域名相同:包含子域名(如`example.com`与`sub.example.com`非同源)。
3. 端口相同:若指定端口需一致(如`80`端口`http`与`8080`端口`http`非同源)。

二、核心限制内容
1. 禁止跨源读取操作
• 无法通过JavaScript读取跨源`iframe`的DOM结构。
• 无法访问跨源网站的`Cookie`、`LocalStorage`、`IndexDB`等存储数据。
• 普通`AJAX`请求(如`XMLHttpRequest`)默认被阻止跨源请求(除非目标服务器配置CORS)。
2. 允许嵌入但限制交互
• 允许嵌入跨源资源(如图片、视频、CSS、脚本),但禁止读取其数据(如用JS获取跨源图片的二进制内容)。
• 跨源表单可提交数据,但无法读取响应内容(除非目标服务器允许)。

三、例外场景(部分浏览器支持)
1. 部分跨域资源共享(CORS)场景:若目标服务器通过`Access-Control-Allow-Origin`等响应头允许,可突破限制。
2. 特定API(如`postMessage`)可实现跨源通信,但需显式配置安全验证。

四、安全意义
防止恶意网站通过跨源访问窃取用户敏感数据(如银行账户信息),或利用跨站脚本(XSS)攻击操纵其他网站的DOM结构。