在某些情况下,引荐从HTTPS传递到HTTP。


17

从理论上讲,浏览器不会将引用信息从HTTPS传递到HTTP站点。以我的经验,这一直都是事实。但是我只是发现了一个例外,并且我想了解它为什么起作用,因此我也可以使用它。

https://www.google.ca/上搜索“我的推荐人是什么”,
例如:https : //www.google.ca/search? q = what+is+my+referer

有一些网站将显示引荐来源。他们似乎都应该在不应该的情况下“工作”。例如,单击www.whatismyreferer.com。我得到:

 Your referer:
 https://www.google.ca/

请注意,有时很少会得到“没有引荐”的结果。返回并再次单击该链接,下一次它将“运行”。

这不应该发生。www.whatismyreferer.com是非HTTPS网站。引用标头不应传递,但应该传递。

这是怎么回事,如何从我的HTTPS站点到要链接到的HTTP站点执行相同的操作?


1
我应该注意,如果这有任何区别(例如:如果其他人在不同的浏览器/操作系统上看到不同的结果),我将在Windows上使用Chrome
ravisorg

此行为不再是真的。
Flimm

@ravisorg,这不应该发布在S / O上吗?
Pacerier,2015年

Google现在返回HTTPS链接,因此测试不再有效:-(
Silas S. Brown布朗

Answers:



4

这是标准行为。

https://tools.ietf.org/html/rfc2616#section-15.1.3

如果引用页面是通过安全协议传输的,则客户端不应该在(非安全的)HTTP请求中包含Referer标头字段。

因此,如果您的客户这样做,就违反了标准。

再一次,谷歌是标准,他们可以做任何他们想做的事情:-)


1
“应该”是指可选权利吗?
Pacerier,2014年

是的,我会这样认为,是可选的。
johnshen64

4
由于它是可选的,为什么您说它违反了标准?
Pacerier 2014年

1
到现在为止2616已过时。7231第5.5.2节说:“如果通过安全协议收到了引荐页,则用户代理不得在不安全的HTTP请求中发送引荐标头字段。” 但是,它没有指定代理应为安全的HTTP请求做什么。
彼得

1

这似乎是google页面上的javascript正在执行的操作。我在启用了noscript的firefox中看不到它,并且如果禁用了javascript,也不会在Windows的Chrome中看到它。我不知道具体是什么,因为我没有更深入地挖掘过。


不,这与javascript不相关(我想到了这一点,并在询问之前将其检查了)。看来这是Chrome遵循的新<meta>标签。
ravisorg

可靠地禁用javascript会阻止引荐来源网址在此处工作。我不知道。也许这里涉及的不止一件事。
Etan Reisner

这非常有趣-我将对此进行更多的实验。感谢您的反馈!
ravisorg

0

<meta> Label的属性名称具有新的引荐来源者规则,引荐来源者控制HTTP引荐来源者HTTP标头的内容,该内容附加到从此文档发送的任何请求中。

欲了解更多信息,请点击这里: RFC Referrer Policy


这与已经接受的答案相同吗?
DocRoot '17

-2

这是因为当您单击链接时,您从https://www.google .... 重定向到http://www.google ...然后将您重定向到www.whatismyreferer.com

就像您说的那样,在http网站之间传递了引荐来源。

您可以使用Firefox扩展程序进行检查


2
您在猜测,还是基于事实?因为我看不到这种情况会发生在我身上。点击该链接,您将转到google.ca上的HTTPS重定向,然后再转到最终域。在到达(例如)www.whatismyreferer.com之前,我从未打过非https URL。另请注意,引荐来源网址明确指出httpS://www.google.ca而不是http。
ravisorg

是的,这个答案似乎不正确。
ceejayoz

这是http标头的转储:pastebin.com/Y1HJyJ87 我只是剥离了资源下载(如谷歌建议和其他Ajax内容)和cookie相关数据。但是我必须承认,当我尝试多次时,google的行为有所不同...有时仅使用https,因此不允许该网站向我显示我的推荐人。自己尝试一下
user2299634
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.