【问题标题】:Does the HTTP referer always end at the top-level domain?HTTP 引用是否总是在顶级域结束?
【发布时间】:2013-05-31 14:47:02
【问题描述】:

我假设答案是“否”,但我无法找到确认。

如果它因语言而异,我对 HTTP 标头(例如 PHP $_SERVER['HTTP_REFERER'])和 JS 的 document.referrer 都感兴趣,尽管我假设它们来自完全相同的地方并且是相同的。

如果我想测试某些东西是否专门来自google.com,那么与/\.google\.com\/?$/ 进行正则表达式匹配是否安全,或者可能会在.com/ 之后出现?

我知道 HTTP 标头很容易被欺骗,但对于那些没有做任何不正当行为的人来说,我不妨让它尽可能准确/无懈可击。

【问题讨论】:

    标签: php javascript http http-headers http-referer


    【解决方案1】:

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

    【讨论】:

    • 我知道。但是,例如,当我在 google.com 上搜索并从搜索结果转到某个站点时,JS 中的 document.referrer 是 https://www.google.com/。我的问题是:它总是以 TLD (.com/) 结尾还是您有时会看到 https://www.google.com/some/other/stuff/?
    • 我只能代表 $_SERVER["HTTP_REFERER"] 但我的经验是它反映了完整的 url。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 2011-06-03
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多