Как распознать 2 ПК с одинаковым IP и браузером (версия)

Я хочу, чтобы на моей странице была опция «Мне нравится» для незарегистрированных пользователей.

Проще всего было бы обнаружить IP пользователя (например, по $_SERVER['REMOTE_ADDR']).

Более сложным будет обнаружение агента пользователя (например, $_SERVER['HTTP_USER_AGENT']).

Но я хочу дать лайк-лайв для «каждого ПК в семье» (реальная жизнь семья) — это также может означать, что все они имеют не только один и тот же IP-адрес, не только один и тот же браузер, но и одну и ту же версию браузера …

Так, как я определил бы, является ли это другим компьютером? (без использование куки / сеанс)

Я хочу хранить один «лайк» на ПК, и, поскольку куки могут быть удалены, я не хотел их использовать 🙂

Я хотел отвлечь свой особый интерес от всей проблематики — так я и сделал.

тем не мение вам следует никогда доверяйте вводу пользователя (как указывал Дэвид) не основывать свой последний лайк-рассчитывать только на это! По крайней мере установите лимит лайков / IP и объедините его с куки / сессией.

-1

Решение

Единственный вариант сделать это, не используя простые методы использования файлов cookie, входов в систему и т. Д., — это снять отпечатки пальцев в браузере. Этот метод включает в себя сбор различной информации, которую браузер выводит на сервер / веб-страницу, и создание ее хеша для создания уникального идентификатора для этого клиента. Он обладает удивительно высокой точностью и будет довольно хорошо работать в описываемых вами обстоятельствах.

Он основан на идее, что «нет двух одинаковых браузеров». Другими словами, вы смотрите на разрешение экрана, строки пользовательского агента, активные плагины и т. Д. И создаете «отпечаток» этих настроек. Почти всегда будут какие-то различия.

Есть доступные библиотеки, которые могут помочь вам начать. Вот тот, который очень легко реализовать и понять … https://github.com/Valve/fingerprintjs

1

Другие решения

Вы можете использовать сеансы без использования куки. Когда пользователь входит в систему, он получает токен, и этот токен добавляется к каждому URL-адресу, который он посещает. (В PHP вы можете увидеть это, если вы отключите куки в браузере, вы получите «PHPSESSIONID» в URL). Таким образом, если вы заставляете пользователей войти в систему до голосования / нравится / что угодно, то вы можете добиться этого с помощью сеансов, но не куки.

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

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

2

Обнаружение агента пользователя может быть легко подделано; так что это не надежный способ. Лучший способ сделать это — сеансы или файлы cookie. Почему вы не хотите их использовать?

1

Краткий ответ: вы не можете.

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

Можно ли удалить куки? Конечно. Но они действительно единственный вариант, который у вас есть.

1

Вы не можете присвоить ПК одно имя.
Печенье можно очистить.
Пользовательские логины могут быть сделаны с разных компьютеров.

$ ip. $ http_user_agent не будет работать.
Пользователь может перезагрузить модем, а интернет-провайдер может назначить новый IP-адрес.
Или используйте другой браузер, чтобы изменить $ http_user_agent.
Или другая система в локальной сети может иметь тот же $ http_user_agent.

Каково значение предоставления одного «лайка» на ПК (при условии, что вы можете даже правильно идентифицировать ПК)?
Что если два разных пользователя с разными вкусами используют один и тот же компьютер?

-1
По вопросам рекламы [email protected]