Как анонимно идентифицировать пользователя и хранить эту информацию - PullRequest
11 голосов
/ 15 декабря 2010

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

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

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

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

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

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

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

Спасибо.

Ответы [ 3 ]

7 голосов
/ 15 декабря 2010

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

Во-первых, это старая статья 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 подробно расскажет об уникальности и особенностях метода снятия отпечатков.

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

3 голосов
/ 15 декабря 2010

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

1 голос
/ 15 декабря 2010

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

Cookie и IP-адрес - ваши единственные варианты.

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

...