【发布时间】:2021-12-30 23:53:02
【问题描述】:
我有一个网站,其中的图像存储在我自己的服务器上。其他一些网站在其页面上使用指向这些图像的链接,因此服务器必须处理额外的流量。我可以禁止使用 Nginx 配置为外部站点加载图像和其他媒体吗?也许CORS设置可以帮助我?谢谢!
【问题讨论】:
标签: nginx cors cross-origin-resource-policy fetch-metadata
我有一个网站,其中的图像存储在我自己的服务器上。其他一些网站在其页面上使用指向这些图像的链接,因此服务器必须处理额外的流量。我可以禁止使用 Nginx 配置为外部站点加载图像和其他媒体吗?也许CORS设置可以帮助我?谢谢!
【问题讨论】:
标签: nginx cors cross-origin-resource-policy fetch-metadata
CORS 无法帮助您,因为 CORS 不适用于图像资源。你有两个选择:
您可以在对资源请求的响应中指定cross-origin resource policy (CORP)。例如,如果您指定以下响应标头,
Cross-Origin-Resource-Policy: same-site
browsers that support CORP 将阻止 cross-site 来源将您的资源嵌入到他们的页面中。
两个警告:
Cross-Origin-Resource-Policy response header 不会对browsers that don't support CORP 产生任何影响;无论页面的来源如何,这些浏览器的用户都可以加载您的资源。或者,您可以通过Fetch Metadata request headers在服务器端实现一些resource isolation policy:
资源隔离政策可防止外部网站请求您的资源。
请注意,目前只有现代版本的基于 Chromium 的浏览器和 (more recently) Firefox 会发送这些请求标头; Safari 显然没有。
但是,实施此类资源隔离政策可能足以阻止第三方将您的图片嵌入他们的网站,因为他们的大部分访问者将无法加载您的内容。
【讨论】: