【问题标题】:HTTP Referrer. Is it reliable? [duplicate]HTTP 引荐来源网址。它可靠吗? [复制]
【发布时间】:2012-02-24 20:33:56
【问题描述】:

我有兴趣记录用户从何处访问我的网络应用程序。

我曾想过为此使用 HTTP 的引荐来源网址,但来自例如HTTP referrer wiki
似乎这不是一种准确/可靠的方式,因为在许多情况下它不会发送。

我想知道引荐来源标头是唯一的方法吗?有更好/标准的方法吗?

【问题讨论】:

    标签: java http servlets redirect


    【解决方案1】:

    可靠的方法是使用?ref=somehash GET 参数

    例如:

    考虑这个站点,他们有问题列表,现在有一个 portlet 可以将最近的问题流式传输到其他站点,例如 abcd.com 现在查看用户是否单击了来自 abcd.com 的链接,您传递了一个参数 @ 987654322@,此字符串映射到 abcd.com

    【讨论】:

    • 任何唯一标识源的字符串,例如,如果您在 portlet 中提供指向其他站点的链接或其他内容,则为该引用设置哈希
    • 我应该使用散列(而不是完整的 url)以使 url 中的字符最少?
    • 请注意,请求参数也完全可以由最终用户控制/编辑。它比推荐人更可靠,但不是防弹:)
    • @BalusC 这就是为什么我说哈希所以大部分用户都被过滤掉了
    【解决方案2】:

    Referrer header 不是唯一的方式,但它是最标准的。

    您可以考虑使用具有额外引荐来源功能的 Google Analytics(分析),但您必须手动设置从他们的服务收集数据以输入您的日志记录基础架构。

    不过,没有什么是 100% 万无一失的。阻止 Google Analytics(分析)和欺骗引荐来源网址非常简单,而 HTML5 将使阻止发送引荐来源网址信息变得更加容易。

    如果您知道所有入站流量的引荐来源是关键任务,那么您会想出更严格的方法(就像 @Jigar Joshi 建议的那样)

    【讨论】:

      【解决方案3】:

      根据浏览器的不同,您可能会或可能不会获得 referrer 标头。你可能不会总是得到它。您必须有一个请求参数或一个表单字段才能获取引荐来源。

      【讨论】:

        【解决方案4】:

        HTTP Referer 是分析日志的好方法。并维护对用户交互的分析。但是,显示网页并能够遍历网页的浏览器或任何其他系统可能不会发送此标头条目。

        您也可以考虑使用第三方应用程序,例如谷歌分析。但是您应该检查此第 3 方工具在您所在的国家/地区是否合法。他们中的大多数都存在数据隐私问题。

        非常重要的是。如果您在预期结果中有一定的错误,则可以进行分析。但是永远不要对 http 引用者进行任何与安全相关的检查。有人可能会输入他想要的任何内容作为推荐人。

        【讨论】:

          猜你喜欢
          • 2011-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多