47

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

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

我知道以下内容:

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

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

4

4 回答 4

62

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

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

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

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

--编辑--

找到我正在谈论的页面:Panopticlick - “您的浏览器有多独特和可跟踪”

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

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

于 2010-10-15T07:40:46.317 回答
8

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

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

于 2010-10-15T07:47:29.200 回答
2

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

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

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

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

于 2010-10-15T07:29:47.370 回答
2

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

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

于 2010-10-15T07:32:00.973 回答