M
M
MishaRash2014-09-28 13:09:40
Computer networks
MishaRash, 2014-09-28 13:09:40

How does Yandex.Internetometer get true information about the user's browser if the user-agent is spoofed?

I'm using User Agent Switcher in Firefox on Ubuntu (Lubuntu/Kubuntu to be exact) 14.04. Sometimes I use user-agent from Chrome 28 under Windows 7 x64. Somehow I decided to check what they can find out about my browser. In particular, I used Yandex.Internetometer. Here is its detailed output in the part that interests me:

browser information:
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 :

I decided to check if it is really possible to find out the true platform, engine name, browser and engine versions from an HTTP request. To do this, I raised a local HTTP server, which simply outputs everything it receives to the terminal. Here's what a simple GET request to the server's root looks like:
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

I tried to clean Yandex cookies, along with all the others, nothing has changed.
For comparison, here is the output of Yandex.Internetometer with the User Agent Switcher turned off:
browser info:
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 :

and a GET request (also with the User Agent Switcher turned off):
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

So, the question is, how does Yandex.Internetometer get the values ​​of the appCodeName, buildID, oscpu, product, productSub fields, if this information is not in a regular HTTP request, and I have repeatedly deleted cookies?
UPDATE1: Tried disabling JavaScript. When JS is disabled on yandex.ru and/or yandex.st (using NoScript), as well as when cross-site requests from yandex.ru to yandex.st are disabled (using RequestPolicy), the "terminal" with detailed information is not displayed. Moreover, in all these cases, the content of this invisible element consists solely of the string "Please wait...". Observations have shown that detailed information is loaded into this "terminal window" only after clicking on the "Show detailed information" inscription and executing the corresponding script. Accordingly, the sources of that information are yandex.ru, yandex.st and JS from these sites.
UPDATE2: once cookies were deleted for all sites.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
Puma Thailand, 2014-09-28
@opium

Use anonymous mode with flash and javascript turned off, did you delete cookies for all sites? if not, then in the raws it is easy to see from which subdomains files are still loaded there.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question