如何检测像Facebook这样的新机器?

mrN*_*mrN 13 php facebook

我实际上是想用一台电脑来检测一个人,就像facebook一样.每当您使用不同的机器登录Facebook时,它会检测到新机器并要求您注册它.他们如何发现此人正在使用另一台计算机.可能是他们可以跟踪客户端MAC或实际IP(但这通常会在每次重新连接时发生变化).

怎么检测到这个?

Mat*_*tis 14

我最近自己尝试了以下结果:


MACBOOK =我的笔记本电脑

戴尔=我的朋友笔记本电脑

我在SWEDEN的MACBOOK上登录Facebook,并被要求命名该设备.

我的朋友在瑞典的DELL登录Facebook,并被要求为该设备命名.

我们都去了JAPAN.

我在JAPAN的MACBOOK上登录Facebook,我没有要求再次命名设备.

我的朋友在JAPAN的DELL上登录Facebook,并没有要求再次命名该设备.

我在JAPAN的DELL上登录Facebook,并被要求命名该设备.


因此,我从中得出两个不同的选择:

  1. 登录设备的每个Facebook用户的持久cookie.
  2. 不知何故Facebook可以匹配MAC地址.

如果没有你安装插件或诸如此类的东西就永远无法实现2.我们留下了1.

探索我在Facebook上的cookie,我发现了其中的13个.使用谷歌浏览器非常有用.只需转到chrome:// settings/cookies,您就会得到一个清单.

名为"lu"的Facebook cookie包含以下信息:

Name:   lu
Content:    (data)
Domain: .facebook.com
Path:   /
Send For:   Any kind of connection
Accessible to Script:   No (HttpOnly)
Created:    Thursday, June 9, 2011 8:58:10 PM
Expires:    Saturday, June 8, 2013 8:58:10 PM
Run Code Online (Sandbox Code Playgroud)

这是他们拥有的唯一一个不会在浏览器关闭时过期的cookie,提前一天或几天.我有根据的猜测是(数据)将包含他们为此功能检查的设备信息.

我还猜测他们会将信息存储在他们的数据库中,登录后他们会再次匹配您的数据.如果您以某些预定义的方式匹配(例如,ip地址和浏览器仍然相同),您将自动获得批准.这可以解释为什么您可以格式化您的计算机并仍然获得设备批准.

我猜你如果删除所有cookie然后转移到另一个互联网提供商,你将需要再次注册该设备.


bas*_*aus 5

此过程与Cookie无关,称为指纹识别。

基本上,您可以查看浏览器的功能和支持,并且这种组合可能会有些独特。

您可以在这里进行测试:https : //panopticlick.eff.org

JavaScript示例,但该理论可以转换为任何语言:http : //valve.github.io/fingerprintjs2/

将此功能与Cookie结合使用是检测唯一设备的最佳方法。登录时将指纹存储在一个隐藏的字段中,并对照已获得的可用指纹进行检查。


Mar*_*ker 0

我不知道 facebook 是否使用此方法,但一个明显的方法是简单地测试 cookie 并设置它(如果它不存在)。