2010-07-17 41 views
4

是否有可能爲php(或JavaScript在最壞的情況下)爲不依賴cookie或ip的用戶創建唯一的ID。我曾在myminicity.com上看到,在每個城市,計數一天只會增加一次(它對每個人都有一個唯一的ID),即使我刪除了我的cookie並刷新了ip,它仍然可以檢測到我已經訪問過,並且我想要爲我製作這個系統。我看到很多人說它不可能,如果它不是真的,最好的選擇是什麼?PHP獨特的計算機ID

編輯

現在,我得到我可以使用多個Cookie的混合(與識別多種方法),多localStorage的值(同餅乾),MySQL數據庫的IP跟蹤和閃存餅乾的想法並且如果找到它們中的任何一個,則該用戶在今天之前已經訪問過。

+0

可以根據其他因素創建一個_reasonably_唯一ID,但如果您不使用Cookie或IP地址,則IMO總有可能會有2位訪問者產生相同的ID。正如Gumbo所說的(有一個鏈接),有各種網站報告你的系統對它的獨特性。我認爲這是關鍵 - 你的系統對於特定網站的獨特性如何,而不一定是整個世界。然後有Flash餅乾等... – MrWhite 2010-07-17 14:52:12

回答

5

用戶代理髮送給服務器的信息有幾種。例如,請參閱Panopticlick以瞭解您的瀏覽器的獨特之處。另一種選擇是使用難以拒絕和刪除的Flash cookies

+0

+1你已經預料到了我與Panopticlick。 – mbq 2010-07-17 14:44:19

+0

Panopticlick給我的想法,但它會太複雜... Flash餅乾肯定難以刪除,但最終仍然是可以破解的。 – nebkat 2010-07-17 14:48:53

+0

@Neb:沒有解決方案不能以某種方式破解。即使MAC地址也可能被篡改。而且Panopticlick應該只顯示用戶代理髮送的信息,而不讓用戶知道。而且由於它無法確定用戶身份,所以在這種情況下隱藏的Flash cookie可能是最好的解決方案。 – Gumbo 2010-07-17 14:54:23

1

您可以爲每臺計算機生成一個GUID,假設您可以找出某種方式來存儲它,以便用戶無法刪除它(祝您好運)。

大多數這樣做的網站會將IP地址存儲在服務器上的數據庫中,並通過這種方式標識「用戶」。使用JavaScript,您可以組合IP地址和MAC地址,以便NAT網關後面有多個人。

+0

我如何得到MAC地址? – nebkat 2010-07-17 14:42:37

+0

@Neb:很多代碼片段:http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=javascript+mac+address – Donnie 2010-07-17 14:51:24

+0

我認爲只有即可以做到這一點,網站即時通訊工作不' t支持ie(它的html5) – nebkat 2010-07-17 14:58:27

1

myminicity.com使用您的IP範圍來檢測您來自哪個區域......它被稱爲IP基地理定位。有免費和付費的服務。 Google「基於IP的地理位置」...您可以在http://en.wikipedia.org/wiki/Geolocation_software處瞭解更多信息

+0

我知道腳本可以將例如123.456.789.012轉向倫敦,但成千上萬的人在倫敦。而且我沒有看到任何比城市名稱更具體的地理位置IP。我知道谷歌地圖有很好的檢測,但我看到了很不清楚的結果,多個人可能在同一地區。 – nebkat 2010-07-17 14:39:21

0

某些$_SERVER變量可用於生成計算機ID。例如:

$id = $_SERVER['HTTP_USER_AGENT'].$_SERVER['LOCAL_ADDR'].$_SERVER['LOCAL_PORT'].$_SERVER['REMOTE_ADDR']; 

$_SERVER值可以僞造,但它仍然會添加不依賴Cookie或IP地址,一個額外的安全層。