前端知库

同源、同站点与跨域分别是什么意思?

参考答案

常见 HTTP 地址的源由协议、主机和端口组成。任一项不同就不再同源,路径不同不影响源。浏览器用同源策略限制脚本读取跨源数据和访问某些对象。

同站点是另一套边界,常用于 Cookie 的 SameSite 判断,不能与同源互换。两个子域可能同站点但不同源。跨源资源的加载、读取和凭据发送又是不同维度,不是所有跨源行为都被禁止。

file 地址在现代浏览器中往往被视为不透明源,双击本地 HTML 不能代表真实托管环境。不要用已弃用的 document.domain 放宽访问作为新项目方案;跨窗口通信应使用明确校验来源的消息机制。