Я смотрю на создание анонимного опроса. Однако я хочу запретить пользователям голосовать дважды. Я думал о хешировании некоторых request.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), но простое изменение конфигурации не создаст новый хеш?