2
我在創建一個匿名調查。但是,我想阻止用戶投票兩次。我在想一些散列值request.META
像這樣的:Django:根據請求爲用戶創建唯一標識符.META值
from hashlib import md5
request_id_keys = (
'HTTP_ACCEPT_CHARSET',
'HTTP_ACCEPT',
'HTTP_ACCEPT_ENCODING',
'HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION',
'HTTP_USER_AGENT',
'REMOTE_ADDR',
)
request_id = md5('|'.join([request.META.get(k, '') for k in requst_id_keys])).hexdigest()
我的問題:
- 好主意?餿主意?爲什麼?
- 這些鍵中的一些是多餘的還是隻是矯枉過正?爲什麼?
- 其中一些很容易改變?例如,我正在考慮刪除
HTTP_USER_AGENT
,因爲我知道這只是一個簡單的配置更改。 - 知道一個更好的方式來完成這個半獨特的標識符,足夠靈活地處理共享IP(NAT)的人,但是一個簡單的配置更改不會創建一個新的散列?
真棒的想法。爲永遠的+1。 – 2011-02-23 18:38:57
我所做的只是進入Chrome隱身模式,並以新用戶的身份出現。我希望比這更強大。更不用說,我覺得有些利用一些漏洞跟蹤用戶。 – 2011-03-01 21:23:54
如果這是一個匿名調查,您必須接受將會有用戶無法跟蹤,否則您最終會成爲'skeevy'。 – KindOfGuy 2013-12-23 23:07:46