我有一个网站的图像存储在我自己的服务器上。其他一些网站在其页面上使用指向这些图像的链接,因此服务器必须处理额外的流量。我可以禁止为外部站点加载图片和其他媒体吗?或许CORS设置可以帮到我?谢谢!
5m1hhzi41#
CORS在这方面帮不上忙,因为CORS不适用于缺少crossorigin属性的image标记。您有两个选择:
crossorigin
image
您可以在对资源的请求的响应中指定cross-origin resource policy (CORP)。例如,如果您指定以下响应头,
Cross-Origin-Resource-Policy: same-site
支持corp的浏览器将阻止cross-site源在其页面中嵌入您的资源。
两个注意事项:
Cross-Origin-Resource-Policy
或者,您也可以通过Fetch Metadata request headers在服务器端实现一些资源隔离策略:资源隔离策略可防止外部网站请求您的资源。
请注意,目前只有基于Chromium的浏览器和(more recently)Firefox的现代版本才会发送这些请求头;Safari特别不会。
然而,实施这样的资源隔离政策可能足以劝阻第三方在他们的网站上嵌入你的图像,因为他们的很大一部分访问者将无法加载你的内容。
1条答案
按热度按时间5m1hhzi41#
CORS在这方面帮不上忙,因为CORS不适用于缺少
crossorigin
属性的image
标记。您有两个选择:跨域资源策略
您可以在对资源的请求的响应中指定cross-origin resource policy (CORP)。例如,如果您指定以下响应头,
支持corp的浏览器将阻止cross-site源在其页面中嵌入您的资源。
两个注意事项:
Cross-Origin-Resource-Policy
response header在不支持Corp的浏览器中不会有任何影响;这些浏览器的用户将能够加载您的资源,而不考虑页面的来源。资源隔离策略
或者,您也可以通过Fetch Metadata request headers在服务器端实现一些资源隔离策略:
资源隔离策略可防止外部网站请求您的资源。
请注意,目前只有基于Chromium的浏览器和(more recently)Firefox的现代版本才会发送这些请求头;Safari特别不会。
然而,实施这样的资源隔离政策可能足以劝阻第三方在他们的网站上嵌入你的图像,因为他们的很大一部分访问者将无法加载你的内容。