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

Safari mobile and desktop are hiding full referrer URL: why?

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

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

<script src='https://www.b.com/anotherpage'></script>

如果我从每个浏览器访问,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"

来自另一个浏览器:

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"

我试过添加这个:

<meta name="referrer" content="unsafe-url">

或这个

<meta name="referrer" content="always">

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

您无法从您的网站 confirguration/header 中显示完整的 URL。现在它是您的网络浏览器的配置。

这不是最新行为,因为 2014 年 apple 阻止显示 url 地址可能会因无法理解的文本而变得臃肿

你可以参考这个:Next Safari for Mac hides full Web addresses

现在,这是 Safari 对于 iOS 设备和 Mac 的“正常”行为,但这并不意味着您不能禁用它。如果你想要它,你可以显示完整的 url,你可以去 Safari > Preferences > Advacned > Select Show full website address

可以参考一下:

How to Show the Full Website URL in Safari for Mac OS

How to Stop Safari From Hiding URL's

How to See the Entire URL in Safari's Address Bar

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

您看到的差异可能是因为浏览器 are moving from a default of no-referrer-when-downgrade (which would show the full path in your case) to strict-origin-when-cross-origin (which wouldn't, since it's a cross-origin request). Safari has presumably made that change while the others you tested haven't. (But note that Chrome will be adopting the new default 版本为 85)。

您尝试使用 meta 标签应该可以,所以如果没有,可能是有什么干扰了。您可以尝试使用其他机制之一,例如 Referrer-Policy header 或 <meta http-equiv='Referrer-Policy' content='no-referrer-when-downgrade'> 标记。不幸的是,according to MDN Safari 不支持脚本标签上的 referrerpolicy 属性。

Safari 中的不正确行为(引荐来源网址仅设置为域,没有 URI),与启用 Prevent cross-site tracking 这一事实有关。 设置:

<meta name="referrer" content="no-referrer-when-downgrade">
<meta http-equiv='Referrer-Policy' content='no-referrer-when-downgrade'>

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

不影响。

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

希望这对某人有所帮助,