Уникальный серийный номер с использованием php / javascript - PullRequest
0 голосов
/ 10 марта 2011

Есть ли способ получить уникальный серийный номер для машин, таких как Mac, Windows и таких устройств, как iPhone, Blackberry, используя php / javascript?

Ответы [ 4 ]

1 голос
/ 10 марта 2011

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

И если у вас есть код, развернутый на стороне сервера, легко реализовать систему на основе счетчиков.

1 голос
/ 10 марта 2011

Что такое машина?

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

Например, жесткий диск компьютера, вероятно, имеет уникальный серийный номер, если у машины есть сетевая карта, у него есть уникальный MAC-адрес, и он может даже рассматриваться как «другая машина» при работе в других операционных системах ( Windows, Mac и т. Д.). Все эти уникальные идентификаторы могут быть объединены для создания уникального идентификатора компьютера, и именно это делают некоторые поставщики программного обеспечения, такие как Mathematica, чтобы убедиться, что вы не запускаете программное обеспечение на компьютере или операционной системе, у вас нет лицензии. это для.

Использование идентификаторов интерфейса

С появлением IPv6 , наконец, широко доступного, Идентификатор интерфейса протокола может служить идентификатором вашего компьютера (или, по крайней мере, его сетевой карты), поскольку он содержит MAC -адрес сетевой карты. IPv6 предоставляет расширения конфиденциальности для предотвращения такого рода идентификации, поскольку в эпоху персональных компьютеров и мобильных устройств идентификация компьютеров равна идентификации пользователей, что является огромной проблемой конфиденциальности. В настоящее время мобильные устройства Apple и Android не предоставляют расширение конфиденциальности, и по умолчанию они отключены на Mac и Linux. Похоже, что по умолчанию только в Windows 7 они включены.

Доступ к IP-адресу в PHP и JavaScript

  • В PHP довольно просто получить доступ к IP-адресу через $_SERVER['REMOTE_ADDR']
  • В javascript вы можете отправить запрос JSONP на сервер, который возвращает IP-адрес пользователя.

См .: Можно ли выполнить поиск DNS (имя хоста по IP-адресу) с использованием клиентского Javascript?

Доступ к MAC-адресу в Javascript

Даже если на машине есть только IPv4 - есть подтверждение концепции взлома (http://samy.pl/mapxss/), которая извлекает MAC-адрес из некоторых маршрутизаторов через JavaScript XSS. Затем MAC-адрес вашего маршрутизатора отправляется в геолокацию Google. служба для определения точного местоположения машины (конечно, это только слабый идентификатор для мобильных устройств)

Объединение идентификаторов

Веб-браузеры предоставят вам строку userragent, которая сделает ваш идентификатор еще более «уникальным», а также файлы cookie, службы геолокации и т. Д.

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

Запрашиваемая у пользователя

Из-за потенциальных проблем с конфиденциальностью вам следует рассмотреть возможность использования подхода с подпиской для создания уникального ID. Кроме того, поскольку пользователи связываются со своими машинами, они единственные, кто может однозначно идентифицировать свою машину с 100% определенностью . Поэтому лучше всего предоставить пользователю стимул доверять вам идентификацию своих машин. Простой сценарий - предоставить пользователю логин (чтобы у вас была идентификация пользователя), а затем попросить пользователя помочь вам с идентификацией машины. Конечно, это работает, только если вы доверяете своему пользователю, но если вы не доверяете ему, он, вероятно, не должен доверять вам.

0 голосов
/ 01 марта 2014

Что такое машина?

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

Например, жесткий компьютерВозможно, диск имеет уникальный серийный номер, если у машины есть сетевая карта, у него есть уникальный MAC-адрес, и он может даже рассматриваться как «другой компьютер» при работе в других операционных системах (Windows, Mac и т. д.).Все эти уникальные идентификаторы могут быть объединены для создания уникального идентификатора компьютера, и именно это делают некоторые поставщики программного обеспечения, такие как Mathematica, чтобы убедиться, что вы не запускаете программное обеспечение на компьютере или операционной системе, у вас нет лицензии.это для.

Использование идентификаторов интерфейса

Поскольку IPv6, наконец, становится широко доступным, идентификатор интерфейса протокола может служить идентификатором вашей машины (или, по крайней мере, ее сетевой карты), так как онсодержит MAC-адрес сетевой карты.IPv6 предоставляет расширения конфиденциальности для предотвращения такого рода идентификации, поскольку в эпоху персональных компьютеров и мобильных устройств идентификация компьютеров равна идентификации пользователей, что является огромной проблемой конфиденциальности.В настоящее время мобильные устройства Apple и Android не предоставляют расширение конфиденциальности, и по умолчанию они отключены на Mac и Linux.Похоже, что по умолчанию только в Windows 7 они включены.

0 голосов
/ 10 марта 2011

Нет, сделать это невозможно.

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

Конфиденциальность бесценна;)

Мартин спешит удалить все свои печенья и надеть шляпу из фольги

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