Мое требование: у меня есть часть сайта, которая должна разрешить пользователю доступ только из одной системы. Он может использовать разные IP-адреса и разные, если система одна и та же, он должен иметь возможность получить доступ. Мой сайт на PHP. Проведя некоторые исследования и разработки, я обнаружил, что JS помогает получить MAC-адрес, если посетитель использует IE. В моем случае я не могу запретить пользователю использовать IE. Он может использовать любой браузер. Есть ли способ получить MAC-адрес. Если это невозможно, как мне ограничить доступ одного и того же пользователя к контенту с разных компьютеров.
Получить MAC-адрес посетителя веб-сайта активного lancard?
Ответы (2)
Нет. MAC-адреса бесполезны за пределами локальной сети, поэтому они недоступны на верхних уровнях (например, на прикладном уровне). Использование Javascript для получения адреса также не совсем надежно, поскольку кому-то невероятно легко манипулировать.
Если вы хотите ограничить хосты, на которых пользователь может получить доступ к вашему сайту, вам нужно будет использовать метод хранения в браузере для хранения ключа — что-то, что однозначно идентифицирует их. Некоторые форумы используют этот метод, чтобы поймать людей, пытающихся обойти их баны.
Вы должны сгенерировать какой-то случайный ключ (или зашифровать строку), сохранить его на стороне сервера вместе с пользователем, которого вы хотите идентифицировать, а затем предоставить пользователю ключ, который будет сохранен в файле cookie/localStorage.
Тем не менее, существует очевидная проблема, связанная с очисткой пользователем своих файлов cookie...
Надеюсь, это даст вам немного форы.
Даниэль прав, пытаться использовать MAC-адреса нецелесообразно.
Для вашей цели вы, вероятно, захотите использовать несколько слоев. Файлы cookie — хорошее место для начала. Как уже говорилось, их можно очистить. Пользователь также может отключить файлы cookie. Файлы cookie также хранятся в виде простого текста на их компьютере, и пользователю очень легко изменить их.
Вы также можете реализовать сеансы с PHP. Каждый сеанс уникален для каждой системы и браузера. Если пользователь переключает браузеры или перезапускает текущий браузер, сеанс создается заново.
Вы также можете проверить их строку пользовательского агента. Он будет разным для каждого браузера и «скорее всего» для каждой системы, но его можно легко подделать.
Вы также можете использовать обмен открытым/закрытым ключом, но это может быть проблемой для реализации и управления.
На самом деле нет ни одного надежного решения. Лучше всего, вероятно, использовать комбинацию методов, чтобы сделать его как можно более «надежным». Просто постарайтесь не делать это слишком неудобным для пользователя.