1

我有一个网站,图像存储在我自己的服务器上。其他一些网站在其页面上使用指向这些图像的链接,因此服务器必须处理额外的流量。我可以禁止使用 Nginx 配置为外部站点加载图像和其他媒体吗?也许CORS设置可以帮助我?谢谢!

4

1 回答 1

1

CORS 无法帮助您,因为 CORS 不适用于图像资源。你有两个选择:

  • 跨域资源策略,或
  • 资源隔离策略。

跨域资源策略

您可以在对资源请求的响应中指定跨域资源策略 (CORP) 。例如,如果您指定以下响应标头,

Cross-Origin-Resource-Policy: same-site

支持 CORP 的浏览器将阻止跨站点来源将您的资源嵌入到其页面中。

两个警告:

  • CORP 不允许您节省任何带宽,因为所有浏览器(无论它们是否支持 CORP)都会在决定页面是否可以加载之前先下载整个资源。
  • Cross-Origin-Resource-Policy响应头不支持 CORP的浏览器中不会有任何影响;无论页面的来源如何,这些浏览器的用户都可以加载您的资源。

资源隔离政策

或者,您可以通过Fetch Metadata 请求标头在服务器端实现一些资源隔离策略

资源隔离政策可防止外部网站请求您的资源。

请注意,目前只有现代版本的基于 Chromium 的浏览器和(最近的)Firefox 会发送这些请求标头;Safari 显然没有。

但是,实施这样的资源隔离策略可能足以阻止第三方将您的图像嵌入他们的网站,因为他们的大部分访问者将无法加载您的内容。

于 2021-11-20T17:18:28.850 回答