2013-05-31 73 views
0

我假设答案是“否”,但我一直未能找到确认。HTTP引用者是否总是在顶级域名处结束?

如果它根据语言而有所不同,我对HTTP标头(例如PHP $_SERVER['HTTP_REFERER'])和JS的document.referrer都感兴趣,但我认为它们来自完全相同的地方并且是相同的。

如果我想测试的东西已经从google.com专门来了,是它的安全做一个正则表达式匹配/\.google\.com\/?$/,或可能.com/后的东西来吗?

我知道HTTP头文件很容易被欺骗,但我也可以为那些没有做任何事情的人做一些准确/不透明的事情。

回答

0

好吧,没关系,5秒钟的检查证实了我的这一点。答案是不”。它通常是引荐来源的完整网址,这当然可能不会在TLD中结束。只是,使用HTTPS时,Google会隐藏网址的其余部分(包含搜索查询和其他信息),并将https://www.google.com作为引荐来源。

0

Referer头指向请求来自的不是域的页面。

+0

我知道。但是,例如,当我在google.com上搜索并从搜索结果中转到某个网站时,JS中的“document.referrer”为“https:// www.google.com /'。我的问题是:它总是以TLD结尾('.com /'),还是有时候会看到“https:// www.google.com/some/other/stuff /”? – tobek

+0

我只能说$ _SERVER [“HTTP_REFERER”],但我的经验是它反映了完整的网址。 – Orangepill