2013-09-29 147 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.