跨源资源策略 (CORP) 实现
跨源资源策略 (CORP) 由 Cross-Origin-Resource-Policy
响应标头设置,该标头允许网站和应用程序选择加入针对与某些跨源请求相关的漏洞的保护(例如由 <script>
和 <img>
元素发出的请求)。
问题
解决方案
使用 Cross-Origin-Resource-Policy
阻止对给定资源的 no-cors
跨源请求。由于此策略通过响应标头表达,因此不会阻止实际请求。相反,浏览器通过剥离响应正文来阻止结果泄漏。
可能的值为
same-origin
-
将资源访问限制为来自同一来源的请求。建议用于以敏感用户信息或私有 API 作为回复的 URL。
same-site
-
将资源访问限制为来自同一站点的请求。建议用于来自其功能在其他几个同一站点来源之间共享的来源的响应。例如,为静态资源提供服务的公司 CDN 和处理身份验证的单点登录 (SSO) 应用程序。
cross-origin
-
允许跨源请求访问资源。仅建议用于来自广泛使用的来源(例如公共 CDN 或窗口小部件)的响应。如果未设置
Cross-Origin-Resource-Policy
,则这是默认值。
为您的站点设置尽可能严格的值。
如果您的站点反过来需要访问跨源资源,则通过与相关请求一起发送 Cross-Origin-Embedder-Policy
标头来选择加入更好的默认值。这将阻止加载不也显式发送 Cross-Origin-Resource-Policy: cross-origin
标头的跨源资源。
示例
指示浏览器不允许在 no-cors
模式下发出的跨源请求
http
Cross-Origin-Resource-Policy: same-origin
指示浏览器允许跨源资源访问,包括访问具有无节流计时器(例如 SharedArrayBuffer
对象或 Performance.now()
)的功能。
http
Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
这也允许嵌入此类资源。