Подтвердить что ты не робот

Как анонимно идентифицировать пользователя и хранить эту информацию

Мне нужна простая система идентификации пользователей для цели разрешить/запретить действие.

Это не требование высокой безопасности, и это нормально делать ошибки (например, тот же пользователь будет выполнять недопустимые действия с использованием разных браузеров).

Чтобы быть менее абстрактным, давайте посмотрим на голосование StackOverflow и предположим, что хотим разрешить голосование публичной аудитории, но только один раз.

Простейшая вещь, которая может работать - это использовать cookie: установить новый файл cookie за один ответ; хранить все голоса в одном cookie (или объединить их как-то).

Это немного ненадежно из-за ограничений размера/количества файлов cookie. Он также будет отправлять cookie на сайт все время, пока это требуется только для 1 действия.

Итак, с этой точки зрения я бы хотел избежать использования cookie.
Но не лучше, чем делать это над обычным HTTP. Я не рассматриваю IP/MAC-адрес и т.д.

Итак, в контексте выше, вопросы: как анонимно идентифицировать пользователя и хранить эту информацию на клиенте?

Спасибо.

4b9b3361

Ответ 1

Анонимный идентификатор пользователя, безусловно, может быть выполнен (и выполняется) с довольно высокой степенью точности. Вместо того, чтобы перепечатывать методологию здесь немного чтения, которое все выложит.

Во-первых, это старый бит EFF в отношении математики конфиденциальности пользователей (в частности, энтропии за вашими данными) в Интернете. Конечно, необязательно, но он выражает модель, на которую мы смотрим. Вы можете пропустить это, если математика за идентификацией вас не интересует.

http://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy

В основном взято в двух словах: используя только браузер-агент, IP-адрес и другие данные, опубликованные в одном из своих примеров (panopticlick) http://panopticlick.eff.org/ у вас очень высокая вероятность уникальной идентификации пользователя (при условии, что это один и тот же компьютер) без необходимости использования файлов cookie. Дополнительная информация об их исследовании обнаружения и уникальности браузера доступна здесь:

http://panopticlick.eff.org/browser-uniqueness.pdf

Перейдите на страницу panopticlick и дайте ей тест. Он покажет вам, что искать (и дать примеры и источник того, как это сделать), в то время как .pdf будет подробно описывать уникальность и специфику метода отпечатки пальцев.

Моя конфигурация системы, например, уникальна среди всего теста 1 0101 578, протестированного с 20.38 бит идентификационной информации (уменьшение энтропии). Учитывая их исследования, у вас будет точность 94,2% и 99,1% при идентификации пользователей между посещениями без использования отслеживания на стороне клиента.

Ответ 2

Сохраните небольшой уникальный идентификатор на стороне клиента в качестве файла cookie, затем используйте этот идентификатор для поиска любых связанных данных сеанса, которые вам нужны на вашей стороне сервера.

Ответ 3

MAC-адрес был бы ужасным, но не возможным по HTTP, к сожалению (и хорошо для конфиденциальности пользователей).

Cookie и IP-адрес являются вашими опциями.

Вы можете удалить файл cookie, когда вы закончите с ним, только примените его к соответствующему пути или просто запустите его в течение нескольких часов/дней независимо от того, что подходит.