
Я столкнулся с утверждениями одного пользователя онлайн-игры, что, согласно его разговору с одним из модераторов, игровой движок позволяет сразу определить случай, когда пользователь играет с нескольких аккаунтов, если они были созданы на одном компьютере. Он понял, что это больше связано с сетевой картой, чем с компьютером, поэтому я быстро определил, что единственной возможностью будет считать MAC-адрес (пользователь может использовать несколько браузеров, может переустанавливать систему, и эта безопасность в любом случае должна работать).
Меня очень заинтриговало это заявление. Возможно ли, чтобы браузерная игра (написанная на PHP) действительно получила доступ и считывала мой MAC-адрес? ActiveX — это не тот случай, поскольку только ограниченная часть геймеров использует IE. Я не знаю стандартного механизма, позволяющего это сделать, но я не эксперт...
Возможность считывания MAC-адреса представляет большую опасность для конфиденциальности, поэтому это очень тревожно...
решение1
Обычно, если только веб-сервер и клиент не находятся в одном сегменте Ethernet, хост, обслуживающий PHP, сможет распознать только IP-адрес клиента из браузера пользователя, а не связанный с ним MAC-адрес. Это происходит потому, что MAC является локальным адресом, а маршрутизаторы не пересылают пакеты с локальными адресами. Поэтому, если между веб-сервером и клиентом есть хотя бы один маршрутизатор, веб-сервер увидит только MAC ближайшего к нему маршрутизатора.
Тем не менее, можно обнаружить MAC в IE с помощью клиентского JavaScript, который подключается к сетевой карте через ActiveX. Смотрите этоПост Stack Overflowдля получения более подробной информации.
В качестве альтернативы, апплет Java может использоваться в других браузерах. Уровень безопасности для этого устанавливается в файле политики Java Runtime Environment, поэтому если пользователь включил доступ к системной информации, то апплет потенциально может получить MAC.
Короче говоря, если в браузере не включена технология, которая может подключаться к ОС (например, ActiveX, Java-апплет и т. д.), браузер не сможет определить MAC-адрес клиента.