Уникально идентифицировать один компьютер - PullRequest
6 голосов
/ 26 августа 2009

Я работаю в университете и внедряю веб-приложение на PHP, которое должно работать по-разному, когда оно посещается с одного определенного компьютера. Проблема, с которой я сталкиваюсь, заключается в том, что с веб-сервера, используя $ _ SERVER ['REMOTE_ADDR'] и gethostbyaddr () , я могу определить только тот маршрутизатор, через который проходит компьютер, а не конкретное имя компьютера.

Можно ли в любом случае настроить этот конкретный компьютер для идентификации себя на сервере, чтобы сервер знал, когда к этому приложению осуществляется доступ к веб-приложению? На компьютере запущен Firefox в режиме киоска, поэтому разрешены дополнения или сценарии greasemonkey ...

Ответы [ 9 ]

12 голосов
/ 26 августа 2009

Вы можете установить куки. Это будет запомнено клиентом и передано на сервер как часть каждого запроса. Больше информации здесь: http://www.w3schools.com/PHP/php_cookies.asp

7 голосов
/ 26 августа 2009

Измените заголовок пользовательского агента Firefox на что-то, что однозначно идентифицирует эту машину, затем вы можете извлечь эту строку в PHP из $_SERVER['HTTP_USER_AGENT'].

См. Как редактировать строку User Agent

4 голосов
/ 26 августа 2009

Вы можете установить cookie или, в качестве альтернативы, изменить заголовок UserAgent, который используется в вашей установке Firefox, на что-то отличительное.

Чтобы изменить строку агента пользователя, просто введите about: config в качестве адреса в адресная строка FireFox, место, где вы обычно вводите URL (ссылка). Я рекомендую сохранить исходное значение, которое вы можете получить когда вы вводите примерно: в адресная строка.

Теперь нажмите правую кнопку мыши, чтобы получить контекстное меню и выбрать «Строка» из пункта меню «Новый». Введите имя предпочтения "general.useragent.override", без цитаты. Далее введите нового пользователя Агент значение, которое вы хотите Mozilla Firefox использовать. Я добавил свое имя и ссылку на мой веб-сайт в первоначальное значение. Вы также можно выбрать один из списка Строки агента пользователя. Проверьте новый значение, введя около: в адресная строка.

Вы можете получить эту строку User-Agent из $_SERVER['HTTP_USER_AGENT'] в php.

3 голосов
/ 26 августа 2009

Как насчет ssl и клиентских сертификатов?

http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html#accesscontrol

2 голосов
/ 26 августа 2009

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

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

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

1 голос
/ 02 октября 2010

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

0 голосов
/ 26 августа 2014

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

$something=$_SERVER['HTTP_USER_AGENT'];

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

0 голосов
/ 02 октября 2010

Я уверен, что вы получили очень хороший ответ, но если вы ищете решение, которое однозначно идентифицирует КОМПЬЮТЕР, а не БРАУЗЕР, то посмотрите на FLASH COOKIES a.k.a ОБЪЕКТЫ, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ FLASH.

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

0 голосов
/ 26 августа 2009

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

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