Intereting Posts
Границы ячеек не печатаются (кроме 1-й страницы), когда таблица охватывает несколько страниц в Firefox функция создания часового пояса в веб-приложении PHP Группы регулярных выражений PHP фиксируют Использование PHP / Apache для ограничения доступа к статическим файлам (html, css, img и т. Д.) содержимое вместо пути в оболочке Как узнать, какой пользователь запускает текущий PHP-скрипт? Предупреждение: mysql_query () : доступ запрещен для пользователя «ODBC» @ «localhost» (с использованием пароля: НЕТ) спросите о php summary 01 + 01 = 02 Обновление ajax div с данными формы Symfony2 / Doctrine2: проблемы управления несколькими диспетчерами сущностей внутри слушателя Получение имени файла (или удаление файла) с помощью дескриптора файла Выполнить команду задачи symfony из разрешения shell_exec () Как именно работает if (переменная $)? php-массив для преобразования csv с заголовками столбцов PHP: YouTube v3 API Captions Upload with Sync Flag

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

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

Например:

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

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

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

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

    https://panopticlick.eff.org/

    JavaScript, Java и Flash помогают.

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

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

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

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

    есть решение, называемое evercookie, которое реализует все это

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

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

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

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

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

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