【问题标题】:Detecting a "unique" anonymous user检测“唯一”匿名用户
【发布时间】:2011-04-25 19:22:01
【问题描述】:

不可能将用户或请求标识为unique,因为复制是微不足道的。

但是,有一些方法结合起来会阻碍作弊尝试并赋予用户准唯一身份。

我知道以下几点:

  1. IP 地址 - 将每个访问者的 IP 地址存储在某种数据库中
    • 可以伪造
    • 多台计算机/用户可以拥有相同的地址
    • 具有动态 IP 地址的用户(某些 ISP 发布)
  2. Cookie 跟踪 - 为每个访问者存储一个 cookie。没有它的访问者被认为是“独特的”
    • 可以伪造
    • 可以通过浏览器阻止或清除 Cookie

是否有更多方法可以跟踪未经授权(未登录、未验证)的网站访问者?

【问题讨论】:

  • 伪造 IP 不是问题,因为他们不会得到回复,因此无法浏览您的网页。

标签: unique visitor-statistic user-tracking visitors


【解决方案1】:

实际上,您可以通过多种方式检测“唯一”用户。我们的营销朋友使用其中许多方法。如果您启用了 Java、Flash 等插件,它会变得更加容易。

目前我最喜欢的基于 cookie 的跟踪演示是 evercookie (http://samy.pl/evercookie/)。它通过多种存储机制创建一个“永久”cookie,普通用户无法刷新,具体使用:

  • 标准 HTTP Cookies
  • 本地共享对象(Flash Cookie)
  • Silverlight 隔离存储
  • 以 RGB 值存储 cookie 自动生成的、强制缓存的 PNG 使用 HTML5 Canvas 标签读取像素 (cookies) 退出
  • 在网络历史记录中存储 cookie
  • 在 HTTP ETag 中存储 cookie
  • 在 Web 缓存中存储 cookie
  • window.name 缓存
  • Internet Explorer 用户数据存储
  • HTML5 会话存储
  • HTML5 本地存储
  • HTML5 全局存储
  • 通过 SQLite 的 HTML5 数据库存储

我不记得网址了,但也有一个网站会根据它可以从您的网络浏览器收集的所有信息告诉您您的“匿名性”程度:您加载了哪些插件、什么版本、什么语言、屏幕大小, ... 然后您可以利用我之前谈到的插件(Flash、Java...)来了解更多关于用户的信息。当我找到向您展示“您有多独特”的页面时,或者也许有人知道»»实际上看起来每个用户在某种程度上都是独一无二的,我会编辑这篇文章!

--编辑--

找到我正在谈论的页面:Panopticlick - "How Unique and trackable is your browser"

它收集诸如用户代理、HTTP_ACCEPT 标头、浏览器插件、时区、屏幕大小和深度、系统字体(通过 Java?)、Cookie 等内容...

我的结果:您的浏览器指纹在迄今为止测试的 1,221,154 个中似乎是唯一的。

【讨论】:

  • 我会为此 +1,但世界上已经有足够多的邪恶,而无需滥用其他人的计算机。
  • 你是对的,但最好知道你的对手是什么,这样你就可以保护自己。
  • 我不确定evercookie 的网站是否使用了自己的插件,但我的鼠标一直在闪烁。我假设它正在发生的存储。很棒的发现。
  • 不是插件,都是基于 JS 的——你实际上可以下载源代码 ;-)
  • 我也是独一无二的(在 1,221,523 中),这要归功于我的字体收藏(我是唯一一个拥有它的人)
【解决方案2】:

Panopticlick 有一个非常完善的方法来使用指纹检查唯一用户。除了 IP 地址和用户代理之外,它还使用了诸如时区、屏幕分辨率、系统上安装的字体和浏览器中安装的插件等内容,因此它为每个用户提供了一个非常独特的 ID 而无需存储他们电脑里的任何东西。假阴性(发现两个不同的用户具有完全相同的指纹)非常罕见。

这种方法的一个问题是它可能会产生一些误报,例如,如果他们安装了新字体,它会将同一用户视为新用户。我想这是否可以取决于您的应用程序。

【讨论】:

  • 你知道 Panopticlick 的源代码是否可用吗?
  • 是的,它全部(或至少大部分)在浏览器中运行,所以只需访问该站点并单击“测试我”,然后查看源代码并阅读 JavaScript。该文件似乎包含大多数“更难”检测的内容:panopticlick.eff.org/resources/fetch_whorls.js
【解决方案3】:

是的,不可能 100% 确定地区分匿名访问者。您能做的最好的事情就是收集您所拥有的信息,并尝试将尽可能多的访问者区分开来。

您还可以使用另一条信息:

  1. 浏览器字符串
    • 它不是唯一的,但结合其他信息可以提高分辨率。

如果您需要 100% 确定地区分访问者,那么您需要让他们登录。

【讨论】:

    【解决方案4】:

    在我看来,没有万无一失的方法可以实现这一目标。在您的选择中,cookie 最有可能产生一个合理的现实数字。 NATing和代理服务器可以屏蔽大量用户的IP地址,动态IP地址分配会让很多人混淆结果

    您是否考虑过使用例如 Google Analytics 或类似工具?他们将独特的访客跟踪作为其服务的一部分,而且他们可能比你或我有更多的钱来寻找这个问题的启发式解决方案。只是一个想法!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2023-03-04
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多