Safari 移动版和桌面版隐藏完整引荐来源网址:为什么?

Sat*_*nix 9 safari url http-referer http mobile-safari

我有一个网站,www.a.com

在该网站中,我提供一个页面,其中https://www.a.com/mypage包含以下内容:

<script src='https://www.b.com/anotherpage'></script>
Run Code Online (Sandbox Code Playgroud)

如果我从每个浏览器访问,b.com都会收到以下 http 引用:

https://www.a.com/mypage

但是,如果我从 Safari 移动版或桌面版访问,引荐来源网址将变为:

https://www.a.com/

为什么?如何强制 Safari 发送完整的引荐来源网址?

例子:

来自 Safari、b.com 日志:

123.45.678.901 - - [06/Jun/2020:00:32:03 +0200] "GET /anotherpage/ HTTP/1.1" 200 0 "https://www.a.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1"
Run Code Online (Sandbox Code Playgroud)

从另一个浏览器:

123.45.678.901 - - [06/Jun/2020:00:31:34 +0200] "GET /anotherpage/ HTTP/1.1" 200 0 "https://www.a.com/mypage/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

我尝试添加这个:

<meta name="referrer" content="unsafe-url">
Run Code Online (Sandbox Code Playgroud)

或这个

<meta name="referrer" content="always">
Run Code Online (Sandbox Code Playgroud)

<head>但无济于事https://www.a.com/mypage

Jes*_*noy 10

Safari 中的不正确行为(引用站点仅设置为域,没有 URI)与已Prevent cross-site tracking启用的事实有关。环境:

<meta name="referrer" content="no-referrer-when-downgrade">
<meta http-equiv='Referrer-Policy' content='no-referrer-when-downgrade'>
Run Code Online (Sandbox Code Playgroud)

referrerPolicy="no-referrer-when-downgrade"或元素上的设置(iframe、脚本标签等)

不影响它。

请参阅https://www.arcolatheatre.com/disable-prevent-cross-site-tracking/

希望这对某人有帮助,


Kev*_*nry 6

作为标头发送的值Referer由对给定请求有效的引用策略确定。所选策略可以来自浏览器默认值、HTTP 标头、标签meta或单个标签上的属性。

您看到的差异可能是因为浏览器正在从默认值no-referrer-when-downgrade(这将显示您的情况下的完整路径)转变为strict-origin-when-cross-origin(这不会,因为它是跨源请求)。Safari 可能已经做出了这种改变,而您测试的其他浏览器却没有。(但请注意,Chrome 将在版本 85 中采用新的默认设置)。

您尝试使用该meta标签应该会起作用,因此如果不起作用,则可能是受到了干扰。您可以尝试使用其他机制之一,例如Referrer-Policy标头或<meta http-equiv='Referrer-Policy' content='no-referrer-when-downgrade'>标签。不幸的是,根据 MDN Safari 不支持referrerpolicyscript 标签上的属性。