Same-Origin Policy
同源策略
同源策略是浏览器的安全规则。它会限制一个来源的页面或脚本,如何读取或操作另一个来源的数据。
另一个例子
`reports.example` 上的脚本无法读取用户在 `mail.example` 的收件箱,即使浏览器可以把 Cookie 发送到那里。有意开放跨源的分析 API 只会返回一个完全匹配的 `Access-Control-Allow-Origin`,而且不带凭证。窗口消息必须检查 `event.origin` 和消息结构后才会接受。
主要部分
- 01来源 origin
- 02目标 origin 与资源
- 03读取/交互限制或明确授权
什么时候用
把每个来源当成浏览器的基本安全边界。需要共享数据时,应用最小权限设计清楚的 CORS 或 `postMessage` 通道。
什么时候不要用
同源策略不会阻止所有跨站请求、导航、嵌入、CSRF 或侧信道泄露。它主要限制的是读取和交互。
代码里的名称
origin tuple (scheme, host, port) + controlled CORS/postMessage exceptions 上线前要检查
检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。
预期结果:为这套系统设计或检查 同源策略 (Same-Origin Policy),并让数据保持正确、安全且容易维护。 用户场景:`reports.example` 上的脚本无法读取用户在 `mail.example` 的收件箱,即使浏览器可以把 Cookie 发送到那里。有意开放跨源的分析 API 只会返回一个完全匹配的 `Access-Control-Allow-Origin`,而且不带凭证。窗口消息必须检查 `event.origin` 和消息结构后才会接受。 技术概念或控制措施:同源策略 (Same-Origin Policy)。 适用理由:把每个来源当成浏览器的基本安全边界。需要共享数据时,应用最小权限设计清楚的 CORS 或 `postMessage` 通道。 不应使用的情况:同源策略不会阻止所有跨站请求、导航、嵌入、CSRF 或侧信道泄露。它主要限制的是读取和交互。 工程要求:定义输入、输出、接口约定,以及任何情况下都不能破坏的规则。说明授权与输入检查范围。定义失败、超时、重试和重复执行只生效一次的规则。也要定义数据迁移与兼容限制。 运营要求:加入监控信号与隐藏敏感数据的日志。设置容量上限并写好操作手册。测试恢复与回到上一版的流程。 验收标准:接口约定与失败路径测试通过。重试或部分失败时,数据与授权规则仍正确。性能上限、监控、恢复与回到上一版的方法都已验证。 证据与限制(证据边界):标准只涵盖列出的范围,不会替你决定外观、产品做法或 Vibulary 的教学示例。 待确认:程序运行环境、数据位置、流量形态、数据一致需求和安全边界。也要确认兼容周期、服务目标(SLO)与恢复上一版的限制。
检查这份需求
请 AI 编程助手检查当前如何使用 同源策略 (Same-Origin Policy)。 定义:同源策略是浏览器的安全规则。它会限制一个来源的页面或脚本,如何读取或操作另一个来源的数据。 生产环境检查:检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。