经过几次测试后,我开始得出结论,即当浏览器从https页面点击http页面时,不会发送Referer HTTP页眉。从https页面转到http页面时是否发送HTTP标头Referer?
这是什么安全原因?是在标准的某个地方定义的?
经过几次测试后,我开始得出结论,即当浏览器从https页面点击http页面时,不会发送Referer HTTP页眉。从https页面转到http页面时是否发送HTTP标头Referer?
这是什么安全原因?是在标准的某个地方定义的?
的HTTP RFC状态,在节15.1.3 Encoding Sensitive Information in URI's:
如果引用页面是 与安全协议一起传输,则客户端不应在(非安全)HTTP 请求中包含引用字段的引用字段 。
因此,这是预期/标准行为。
好的,那么Google如何以及为什么将发件人从https发送到非安全网站? – confiq 2014-03-18 11:05:03
@confiq,因为它说'不应该'? – 2014-07-09 05:01:27
原因:有时会话ID是URL编码的。 HTTP页面可以具有跨站点脚本,从HTTPS通信中窃取会话。为了防止这种情况,引用者不会在HTTPS到HTTP转换中传输,因此URL编码的sessin ID不会被盗用。
根据这w3c document on referrer policy其实它不是那么简单(2014年起)。
默认行为是浏览器在从HTTPS到HTTP时不会发送引用信息。但是,从HTTPS到HTTPS时,浏览器将发送引荐来源。
此外,在HTML5中,有一个新的meta标签命名的引荐,看起来像这样:
<meta name="referrer" content="origin">
New browsers have already implemented this。因此,不管浏览器是否会发送引荐,都将在不久的将来取决于此元标记。如果此元标记未包含在页面的HTML中,那么浏览器将使用默认行为。
以下是引用meta标签的内容属性的可能值:
此外,还有一些遗留属性为引用元标记值。这些都不再推荐使用,但目前在很多网站使用:
我希望这些信息将有助于别人谁刚刚发现这个帖子2014年
好的提示。但它不适用于所有设备。 :(PC/Mac中的Chrome工作正常,但** Andorid **中的Chrome无法正常工作! – Kane 2015-09-25 08:43:40
后,在它完全取决于是否引用站点应设置或者不是客户端任何情况下。 – 2009-09-01 10:45:26
@Brian:但客户应遵循/尊重定义他们正在使用的协议的RFC。 – 2009-09-01 10:46:20
目前接受的答案是一个很好的答案,但它与之前发布的@ avid的答案相同。 – mikemaccana 2016-02-21 18:41:58