<meta name='referrer'> 有效,Referrer-Policy header 无效

<meta name='referrer'> works, Referrer-Policy header does not

我们正在将我们的联邦政府网站移至 https-only。我们已经收到来自我们 link 网站的投诉,称我们的引荐来源网址已消失,而这些网站仅使用 http。这是因为 https->http 降级默认情况下会隐藏引荐来源网址。

我们正在尝试使用 HTTP 请求 header Referrer-Policy: origin-when-cross-origin,但它似乎不起作用。但是,放置 <meta name='referrer' content='origin-when-cross-origin'> 确实为大多数浏览器提供了正确的行为。

我们正在设置 header:

<pre>
$ curl -sI https://www.ncbi.nlm.nih.gov/corecgi/tests/testref.cgi
HTTP/1.1 200 OK
Date: Fri, 04 Nov 2016 20:53:38 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Security-Policy: upgrade-insecure-requests
Referrer-Policy: origin-when-cross-origin
Content-Security-Policy-Report-Only: default-src https:; script-src https: 'unsafe-inline' 'unsafe-eval'; font-src https: data:; img-src https: data:; style-src https: 'unsafe-inline'; report-uri https://www.ncbi.nlm.nih.gov/corecgi/csp/csp.cgi
Referrer-Policy: origin-when-cross-origin
Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS, PATCH, DELETE
Access-Control-Allow-Origin:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Accept-Charset,X-Accept,Content-Type,X-Requested-With,NCBI-SID,NCBI-PHID
Content-Type: text/html
Vary: Accept-Encoding
X-UA-Compatible: IE=Edge
X-XSS-Protection: 1; mode=block
</pre>  

但是 header 不起作用:

试试这个:https://www.ncbi.nlm.nih.gov/corecgi/tests/testref.cgi 请注意 https->http 降级 link 发送空白 header

然而 <meta> 元素给出了所需的行为: https://www.ncbi.nlm.nih.gov/corecgi/tests/testref.cgi?meta=true

有没有其他人遇到并解决了这个问题?

看起来 Chrome 即将支持 Referrer-Policy header:

它将在 Chrome 56 稳定版中可用。自 Chrome 53 以来,它一直在标志后面,因此您可以 运行 Chrome 和 --enable-experimental-web-platform-features 在那里尝试一下。

Referrer-Policy header 将在 Firefox 50 中提供支持: