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
作为 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/
希望这对某人有所帮助,
我有一个网站,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
作为 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/
希望这对某人有所帮助,