正如标题所示,我正在努力在通过内联样式属性加载的资源上添加
referrerpolicy
。
我知道我可以设置以下内容:
<img src="https://myseconddomain.com/image.png" referrerpolicy="no-referrer">
并且请求将在没有
Referer
HTTP header 的情况下执行。
但是,我正在努力实现这一目标:
<div style="background-image:url('https://myseconddomain.com/image.png')"></div>
根据spec,
<div>
元素不允许具有referrerpolicy
属性。同样从spec中,我们看到有一种方法可以将策略添加到内联样式属性中:
- 外部 CSS 样式表使用默认策略 (strict-origin-when-cross-origin),除非它被 CSS 样式表响应上的 Referrer-Policy HTTP 标头覆盖。
- 对于元素或样式属性,使用所有者文档的引用策略。
这意味着我应该能够在整个文档上使用
referrer
元标头来控制这一点。这不是可取的,因为我不想覆盖整个页面上的策略,但它似乎也不起作用。在以下示例中,对 myseconddomain.com
的请求仍包含 Referer
HTTP 标头:
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="no-referrer">
</head>
<body>
<div style="background-image:url('https://myseconddomain.com/image.png')"></div>
</body>
</html>
我正在使用 Google Chrome 稳定版 124.0.6367.207 进行测试。
我做错了什么还是这实际上坏了?
我使用 Google Chrome Stable 130 还发现 Referrer-Policy 不适用于内联样式。但使用相同的代码和配置,Firefox 完全没问题