Intereting Posts
PHP-версия класса атрибутов свойств ASP.NET/C# Получить массив массива рекурсивно и создать выделенную строку подчеркивания Передать переменную скрипту php, запущенному из командной строки Есть ли способ получить все твиты из Twitter для указанного пользователя? Сообщения WordPress в виде сетки с колонками Bootstrap 3 JAccess :: getUsersByGroup, как проверить, активирован ли пользователь в joomla и сортировать его по алфавиту по имени IMID-сообщение UID Является ли PHP универсальным во всех браузерах? почему Пытается получить свойство ошибки, отличной от объекта Возможно ли дешифрование md5? Переопределение функции PHP? Почему точка с запятой необязательна в последнем утверждении в php? Как маскировать / скрывать IP-адрес (строку) с помощью PHP и регулярного выражения 2006: сервер MySQL ушел php обрезать строку, если дольше, чем предел, и положить некоторое упущение в конце … аналогично рубину

Уникально идентифицировать один компьютер

Я работаю в университете, и я реализую веб-приложение 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

Некоторые мысли:

  • Установите прочный файл cookie. (Поскольку FF находится в режиме киоска, вы должны быть в безопасности от пользователей, очищающих его.)
  • Попросите этот киоск использовать другой URL-адрес (возможно, с параметром строки запроса).

То, что я бы не сделал, – это работа в соответствии с MAC-адресом машины (что, по словам Гибсона , возможно) или аналогичным; слишком хрупкая, когда аппаратное обеспечение фиксируется и т. д.

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

Я уверен, что вы получили очень хороший ответ, но если вы ищете решение, которое однозначно идентифицирует КОМПЬЮТЕР, а не BROWSER, то посмотрите на FLASH COOKIES aka FLASH SHARED OBJECTS.

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

Попробуй это.

 $something=$_SERVER['HTTP_USER_AGENT']; 

Чтобы однозначно идентифицировать проверку пользователя, $something соответствует вашему собственному. (Который находится на вашем php-коде). если да, то приступайте к доступу.

У вас нет SessionID? Ваш идентификатор сеанса должен быть уникальным, чтобы идентифицировать компьютер.