Как Яндекс.Интернетометр получает истинную информацию о браузере пользователя, если user-agent подменен?

Я использую User Agent Switcher в Firefox на Ubuntu (точнее, Lubuntu/Kubuntu) 14.04. Иногда применяю user-agent от Chrome 28 под Windows 7 x64. Как-то решил проверить, что могут узнать о моем браузере. В частности, воспользовался Яндекс.Интернетометром. Вот его подробная выдача в интересующей меня части:
информация о браузере:

appCodeName : Mozilla
appName :
appVersion :
buildID : 20140830211128
cookieEnabled : true
doNotTrack : 0
language : ru-RU
onLine : true
oscpu : Linux i686
platform :
product : Gecko
productSub : 20100101
userAgent : Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (K
HTML like Gecko) Chrome/28.0.1469.0 Safari/537.36
vendor :
vendorSub :

Я решил проверить, действительно ли по HTTP-запросу можно узнать истинные платформу, имя движка, версии браузера и движка. Для этого поднял локальный HTTP-сервер, который просто выводит в терминал все, что получает. Вот как выглядит простой GET-запрос к корню сервера:
GET / HTTP/1.1
Host: localhost:9542
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 0
Connection: keep-alive

Пробовал чистить cookies Яндекса, заодно и все прочие, ничего не изменилось.
Для сравнения, вот выдача Яндекс.Интернетометра при выключенном User Agent Switcher:
информация о браузере:

appCodeName : Mozilla
appName : Netscape
appVersion : 5.0 (X11)
buildID : 20140830211128
cookieEnabled : true
doNotTrack : 0
language : ru-RU
onLine : true
oscpu : Linux i686
platform : Linux i686
product : Gecko
productSub : 20100101
userAgent : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:32.0) Gecko/2010
0101 Firefox/32.0
vendor :
vendorSub :

и GET-запрос (тоже при выключенном User Agent Switcher):
GET / HTTP/1.1
Host: localhost:9542
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 0
Connection: keep-alive

Так вот, вопрос состоит в том, каким путем Яндекс.Интернетометр получает значения полей appCodeName, buildID, oscpu, product, productSub, если в обычном HTTP-запросе этой информации нет, а cookies я неоднократно удалял?

UPDATE1: Отключить JavaScript попробовал. При отключении JS на yandex.ru и/или yandex.st (с помощью NoScript), а также при запрете межсайтовых запросов от yandex.ru к yandex.st (с помощью RequestPolicy) "терминал" с подробной информацией не отображается. Более того, во всех этих случаях содержимое этого невидимого элемента состоит исключительно из строки "Пожалуйста, подождите...". Наблюдения показали, что подробная информация в это "окно терминала" прогружается только после нажатия на надпись "Показать подробную информацию" и выполнения соответствующего сценария. Соответственно, источники той информации - yandex.ru, yandex.st и JS с этих сайтов.

UPDATE2: один раз cookies удалялись для всех сайтов.
  • Вопрос задан
  • 4158 просмотров
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
юзайте аноним моде с выключенными флешем и джаваскриптом, куки вы удалили для всех сайтов ? если нет то в сырцах несложно посмотреть с каких поддоменов там ещё грузятся файлы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы