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

Способы создания уникального отпечатка пальца пользователя в PHP

Каков наилучший способ создания "отпечатка пальца" уникальности пользователя в PHP?

Например:

  • Я могу использовать IP-адрес пользователя как "отпечаток пальца", однако, там может быть несколько других пользователей на одном и том же IP-адресе
  • Я мог бы используйте пользовательский агент пользователя IP + как "отпечаток пальца", однако, один пользователь может просто поменяться с сафари на firefox и снова будет рассматриваться как уникальный

В идеале, отпечаток пальца так маркирует "машину", а не браузер или "ip", но я не могу придумать, как это возможно.

Откройте для себя идеи/предложения о том, как вы однозначно идентифицируете своих пользователей и какие преимущества/недостатки имеет ваш метод.

4b9b3361

Ответ 1

Этот сайт охватывает почти всю информацию, которую вы можете использовать, чтобы отличать людей через браузер.

https://panopticlick.eff.org/

JavaScript, Java и Flash очень помогают.

Ответ 2

Самый простой и лучший способ: использовать phs управление сеансом - каждому клиенту предоставляется идентификатор, хранящийся в файле cookie (если включен) или задан как переменную get для каждой ссылки и формы. (альтернативно, вы можете настроить cookie самостоятельно). но: это только "отпечатки пальцев" браузера - если пользователь меняет свой браузер, удаляет свои файлы cookie или что-то еще, вы больше не можете его идентифицировать.

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

если вам нужно решение, которое не может легко манипулировать клиентом, попробуйте сделать комбинацию из следующего, используя все, что поддерживается браузером клиентов, и сравнивайте их при каждой загрузке страницы:

  • "normal" HTTP Cookies
  • Локальные общие объекты (Flash Cookies)
  • Сохранение файлов cookie в значениях RGB автоматически сгенерированных, принудительно кэшированных PNG с использованием тега Canvas HTML5 для чтения пикселей (файлов cookie).
  • Хранение файлов cookie и чтение истории веб-поиска
  • Сохранение файлов cookie в HTTP файлах HTTP
  • Хранилище userData для Internet Explorer
  • Хранилище HTML5
  • Локальное хранилище HTML5
  • Глобальное хранилище HTML5
  • Хранилище баз данных HTML5 через SQLite

существует решение под названием evercookie, которое реализует все это

Ответ 3

Достижение 100% -ной надежности не гарантируется, но объединение некоторых распространенных методов может дать вам значимые результаты.

  • Пользователи обычно не переключают браузеры. Чрезмерное усложнение в вашем алгоритме только для достижения инженерного совершенства не стоит усилий.
  • Вы, безусловно, принадлежите к 100 лучшим веб-сайтам, если вы можете ожидать от нескольких пользователей одного и того же IP-адреса. Не считайте это личным, но вы просто не так популярны.

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

Ответ 4

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

Ответ 5

У меня есть три разных компьютера, различные карманные устройства, и у многих из них установлены разные браузеры. Я использую все эти взаимозаменяемо дома, беру их со мной в других местах, поэтому, в основном, на различные IP-адреса. То, что я пытаюсь указать, заключается в том, что отпечаток пальца браузера или машины, если на то пошло, никогда не будет безупречным, если ваша цель - заблокировать человека.

Я рекомендую вам использовать другой подход. Судья, основанный на имеющейся у вас неубедительной информации, которая предлагает идентификацию вашего запрещенного пользователя (одного и того же IP-адреса или одного и того же пользователя-агента, если он необычный, или некоторые из методов отпечатки пальца браузера javascript, такие как доступные шрифты, доступные плагины, нестандартные размер окна и т.д.) и требовать от этих подозрительных посетителей более высокой формы проверки личности - например, oauth с Facebook, Google+ или Twitter. Затем вы можете посмотреть, действительно ли эта учетная запись в социальных сетях является подлинной или созданной только для того, чтобы обойти. Существуют также API-интерфейсы проверки телефона, если ваша пользовательская база не ориентирована на социальные сети и в зависимости от того, насколько ценным для вас является то, что пользователи не обойти запрет.