Как однозначно идентифицировать компьютеры, посещающие мой веб-сайт? - PullRequest
165 голосов
/ 19 октября 2008

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

Поскольку я хочу, чтобы решение работало на всех машинах и во всех браузерах (в пределах разумного), я пытаюсь создать решение с использованием JavaScript.

Я ценю помощь. Спасибо.

EDIT:

Печеньки не подойдут.

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

Ответы [ 21 ]

6 голосов
/ 20 октября 2008

Предложения об использовании файлов cookie, единственный полный набор идентифицирующих атрибутов, доступных для опроса, содержатся в заголовке HTTP-запроса. Таким образом, можно использовать некоторое их подмножество для создания псевдо-уникального идентификатора для пользовательского агента (то есть браузера). Кроме того, большая часть этой информации, возможно, уже зарегистрирована в так называемом «журнале доступа» программного обеспечения вашего веб-сервера по умолчанию и, если нет, может быть легко настроена для этого. Затем может быть разработан целый набор данных, который просто сканирует содержимое этого журнала, создавая отпечатки пальцев каждого запроса, состоящего, скажем, из IP-адреса и строки агента пользователя и т. Д. Содержимое конкретных файлов cookie, добавляет к качеству уникальность этого отпечатка пальца. Хотя, как уже говорили многие другие, протокол HTTP не делает его на 100% надежным - в лучшем случае это может быть лишь довольно хороший показатель.

4 голосов
/ 19 октября 2008

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

Если вы действительно хотите идентифицировать людей , попросите их войти в систему.

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

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

В конечном счете, неверно говорить, что это говорит вам, какой компьютер они используют, если ваши пользователи не используют вашу локальную сеть и не имеют статических IP-адресов.

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

3 голосов
/ 19 октября 2008

Поскольку я хочу, чтобы решение работало на всех машинах и во всех браузерах (в пределах разумного), я пытаюсь создать решение с использованием JavaScript.

Разве это не очень хорошая причина не использовать javascript?

Как уже говорили другие - куки - это, вероятно, ваш лучший вариант - просто помните об ограничениях.

3 голосов
/ 19 октября 2008

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

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

Например, используя PHP, тривиально получить IP-адрес посетителя и сохранить его в текстовом файле (или в базе данных sql).

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

Надеюсь, это поможет.

2 голосов
/ 05 ноября 2008

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

2 голосов
/ 20 октября 2008

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

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

далее, после долгих поисков сегодня я нашел следующую компанию, которая утверждает, что продает решение, которое однозначно идентифицирует машины, которые посещают веб-сайт. http://www.the41.com/products.asp.

Я ценю всю полезную информацию, если бы вы могли уточнить эту противоречивую информацию, которую я нашел, я был бы очень признателен.

1 голос
/ 13 марта 2018

Вы можете использовать fingerprintjs2

new Fingerprint2().get(function(result, components) {
  console.log(result) // a hash, representing your device fingerprint
  console.log(components) // an array of FP components
  //submit hash and JSON object to the server 
})

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

1 голос
/ 19 октября 2008

Я думаю, что куки могут быть то, что вы ищете; Именно так большинство сайтов однозначно идентифицируют посетителей.

0 голосов
/ 06 ноября 2016

Трюк:

  1. Создать 2 страницы регистрации:

    Первая страница регистрации: без электронной почты и проверки безопасности (только с именем пользователя и паролем)

    Вторая страница регистрации: с высоким уровнем безопасности (запрос подтверждения электронной почты, изображение безопасности и т. Д.)

  2. Для удобства клиентов и простой регистрации по умолчанию страница регистрации должна быть (Первая страница регистрации) , но в (Первая страница регистрации) есть скрытое ограничение. Это IP Ограничение. Если IP пытался зарегистрироваться во второй раз (например, менее 1 часа) вместо показ страницы блока. Вы можете показать (Вторая страница регистрации) автоматически.

  3. в (Первая страница регистрации) , которую вы можете установить (например: блок 2 попытки с 1 ip всего за 1 час или 24 часа) и через (например) 1 час вы можете автоматически открыть доступ с этого ip

Обратите внимание: (первая страница регистрации) и (вторая страница регистрации) не должно быть на отдельных страницах. Вы делаете только 1 страницу. (например: register.php) и сделайте умным переключение между первым стилем PHP и вторым стилем PHP

0 голосов
/ 19 октября 2008

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

Если есть возможность заставить вашего посетителя установить какое-либо программное обеспечение и использовать TCPA, вы можете что-то сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...