English 中文(简体)
检测“唯一”匿名用户
原标题:Detecting a "unique" anonymous user

不可能将用户或请求标识为唯一,因为重复操作很简单。

然而,有少数几种方法结合在一起,可以阻止作弊企图,并赋予用户准唯一的地位。

我知道以下几点:

  1. IP Address - store the IP address of each visitor in a database of some sort
    • Can be faked
    • Multiple computers/users can have the same address
    • Users with dynamic IP addresses (some ISP issue them)
  2. Cookie tracking - store a cookie per visitor. Visitors that don t have it are considered "unique"
    • Can be faked
    • Cookies can be blocked or cleared via browser

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

最佳回答

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

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

  • Standard HTTP Cookies
  • Local Shared Objects (Flash Cookies)
  • Silverlight Isolated Storage
  • Storing cookies in RGB values of auto-generated, force-cached PNGs using HTML5 Canvas tag to read pixels (cookies) back out
  • Storing cookies in Web History
  • Storing cookies in HTTP ETags
  • Storing cookies in Web cache
  • window.name caching
  • Internet Explorer userData storage
  • HTML5 Session Storage
  • HTML5 Local Storage
  • HTML5 Global Storage
  • HTML5 Database Storage via SQLite

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

--编辑--

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

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

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

问题回答

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

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

是的,不可能100%肯定地将匿名访问者区分开来。你能做的最好的事情就是收集你所掌握的信息,并尽可能多地区分访客。

还有一条信息可以使用:

  1. Browser string
    • It s not unique, but in combination with the other information it increases the resolution.

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

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

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





相关问题
Xslt - Enforcing @attribute uniqueness

I rarely work with xslt s so I m not the greatest at it, but, I was wondering how to go about solving this problem: <Element> <childElement type="type1">Bob</childElement> <...

unique() for arrays in javascript [duplicate]

As everybody knows there s no built-in function to remove the duplicates from an array in javascript. I ve noticed this is also lacking in jQuery (which has a unique function for DOM selections only), ...

C# getting unique hash from all objects

I want to be able to get a uniqe hash from all objects. What more, in case of Dictionary<string, MyObject> foo I want the unique keys for: string MyObject Properties in MyObject foo[...

How to generate an unique computer id on Delphi?

How can I quickly generate an unique computer id for a delphi app? I used to do it easly with c#, but this failed sometimes. I do want the ID to be "static" but I don t care if the id changes because ...

Sql results into php array

I would like to create an array (in php) from sql results like this: We have the sql-table "Posts" which stores the Name and the Message.Example: Name | Message John | Hello Nick | nice ...

Unique value in StackTrace?

Background: I have written a generic logging library in .NET 3.5. Basically the developer needs to call the Begin() method at the beginning of their method and the End() method at the end of it. ...

热门标签