Я работаю в университете, и я реализую веб-приложение PHP, которое должно иметь другое поведение, когда оно посещается с одного определенного компьютера. Проблема, с которой я сталкиваюсь, заключается в том, что с веб-сервера, используя $ _SERVER ['REMOTE_ADDR'] и gethostbyaddr () , я могу определить только маршрутизатор, который проходит компьютер, а не определенное имя пользователя.
Есть ли в любом случае, я могу установить, что один конкретный компьютер идентифицирует себя на сервере, чтобы сервер знал, когда веб-клиент получает доступ с этой машины? Компьютер запускает firefox в режиме киоска, поэтому допускаются сценарии addons или greasemonkey …
Вы можете установить файл cookie. Это будет запомнено клиентом и передано на сервер как часть каждого запроса. Дополнительная информация здесь: http://www.w3schools.com/PHP/php_cookies.asp
Измените заголовок агента пользователя Firefox на то, что однозначно идентифицирует эту машину, вы можете извлечь эту строку в PHP из $_SERVER['HTTP_USER_AGENT']
.
См. Как редактировать строку User Agent
Вы можете установить файл cookie, или, альтернативно, вы можете изменить заголовок UserAgent, который ваша установка Firefox использует для чего-то особенного.
Чтобы изменить строку User Agent, просто введите about: config как адрес в адресной строке FireFox, где обычно вы вводите URL-адрес (ссылку). Я рекомендую сохранить исходное значение, которое вы можете получить при вводе примерно: в адресной строке.
Теперь нажмите правую кнопку мыши, чтобы получить контекстное меню, и выберите «String» из меню «New». Введите название предпочтения «general.useragent.override» без кавычек. Затем введите новое значение User Agent, которое вы хотите использовать Mozilla Firefox. Я добавил свое имя и ссылку на мой веб-сайт в исходное значение. Вы также можете выбрать один из списка строк User Agent. Проверьте новое значение, введя около: в адресной строке.
Вы можете получить эту строку User-Agent из $_SERVER['HTTP_USER_AGENT']
в php.
Как насчет сертификатов ssl и клиентов?
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html#accesscontrol
Некоторые мысли:
То, что я бы не сделал, – это работа в соответствии с MAC-адресом машины (что, по словам Гибсона , возможно) или аналогичным; слишком хрупкая, когда аппаратное обеспечение фиксируется и т. д.
Почему бы не внедрить систему аутентификации и не разместить тех пользователей, которые нуждаются в специальной функциональности, в специальную группу?
Я уверен, что вы получили очень хороший ответ, но если вы ищете решение, которое однозначно идентифицирует КОМПЬЮТЕР, а не BROWSER, то посмотрите на FLASH COOKIES aka FLASH SHARED OBJECTS.
Тезисы более эффективны и могут использоваться для хранения данных до 100 КБ и остаются неизменными во всех браузерах со вспышкой, поэтому это лучшее решение для однозначной идентификации пользователя
Попробуй это.
$something=$_SERVER['HTTP_USER_AGENT'];
Чтобы однозначно идентифицировать проверку пользователя, $something
соответствует вашему собственному. (Который находится на вашем php-коде). если да, то приступайте к доступу.
У вас нет SessionID? Ваш идентификатор сеанса должен быть уникальным, чтобы идентифицировать компьютер.