2013-09-29 102 views
2

为了避免同一设备发布请求,如何才能使用PHP为所有移动设备获取唯一的ID?使用PHP的设备的唯一ID

+2

登录并为每个请求发送一个唯一的ID,如哈希... –

+0

是的,但是从同设备用户可以创建多个帐户 – lorenzo83

+0

您可以使用某种[设备指纹](http://en.wikipedia.org/wiki/Device_fingerprint)跟踪移动设备。这不会是万无一失的,但可以在一定程度上帮助。 – AbdullahC

回答

12

这是不容易可靠地识别客户的设备:

  1. 你可以设置一个cookie,但用户可以伪造,修改或删除。
  2. 您可能试图追踪IP,但用户可能使用VPN,代理或具有动态IP;他也可能是本地网络的一部分,您的代码可能会影响多个用户
  3. 您可以尝试flash cookies,但它们也可以管理;更何况用户可能没有安装Flash
  4. 您可以尝试使用browser fingerprinting,但用户可以切换到不同的浏览器,安装一个插件,或简单地改变一些设置
  5. You may try to obtain MAC address, but well... this will fail too

你最好的镜头是强制注册,并假设一个帐户=一个用户;

你的第二个最好的办法是只是cookie设备,并依靠该cookie。肯定的 - 精明的用户会很快弄清楚,但你会覆盖大多数非精明的用户;这也是谷歌做跟踪用户的工作。

我不知道你想达到什么目的,但是如果是用户跟踪,那就考虑一下吧:如果google有赖于身份验证+ cookie,那么为什么不呢?

如果,另一方面,你有一个服务,并希望使用限制为每个用户一个试用帐号,然后简单地忘掉它 - 大多数用户总是会想出办法来创建另一个免费帐户,为什么不你给他们很多好的理由来支付吗?

更新

另一个窍门:

http://www.radicalresearch.co.uk/lab/hstssupercookies/

Because HSTS is a security feature and isn't intended to be used for tracking, web browsers treat it differently from cookies. It is only by intentional misapplication that HSTS can be exploited to track users.