Может ли аппаратная информация быть получена на устройстве, взаимодействующем с сервлетом Java? - PullRequest
1 голос
/ 27 марта 2012

Является ли способ сбора аппаратной информации для однозначной идентификации определенного устройства (не категории), которое выполняет запросы к сервлету Java?Я искал это, но я не думаю, что есть метод (заголовок «пользовательский агент» может использоваться для некоторой информации, но он идентифицирует только определенный набор устройств, и этого недостаточно).

1 Ответ

3 голосов
/ 27 марта 2012

Эта информация недоступна в HTTP-запросе.Удаленный адрес (IP-адрес клиента) и пользовательский агент (строка, которую притворяется браузером) - это самые близкие уникальные идентификаторы, которые вы когда-либо можете извлечь на основе HTTP-запроса.Даже тогда эта информация не является надежной.Клиент может, например, использовать анонимный прокси.Например, клиент мог изменить строку пользовательского агента браузера.

В основном вам необходимо собрать эту информацию на стороне клиента и затем отправить ее на серверную часть в качестве параметров запроса самостоятельно.Однако вы, в свою очередь, ограничены в доступных способах сбора этой информации.Например, JavaScript не позволяет этого из соображений безопасности.Ваша ближайшая ставка - это подписанное (!) Приложение Java Applet или Web Start .Это позволяет клиенту загружать некоторый код Java и выполнять его локально.Но это тоже не всегда надежно.Клиент может, например, взломать код апплета / веб-запуска и / или подделать HTTP-трафик между апплетом и сервером.

Другой способ - просто ввести систему регистрации / авторизации / аутентификации, в которую клиент должен предоставитьуникальный идентификатор самого действительного логина.Это не только проще, но и надежнее.

...