Client Fingerprinting via Analysis of Browser Scripting Environment
The navigator.browserLanguage, navigator.systemLanguage, and navigator.userLanguage provide information about the language being used by the browser and O/S. The property returns a 2 character lower case language code, followed by a country code with a hyphen (-) for a separator. Internet Explorer 6, 7, 8 and 9 Beta all return lower case country codes, while the Internet Explorer 9.0 Previews return an upper case country code.
The navigator.appMinorVersion property returns a value of ‘0’, with two exceptions for Internet Explorer 6.0 and Internet Explorer 9.0 beta. Internet Explorer 6.0 returns the service pack that is installed on the O/S, and Internet Explorer 9.0 beta returns the value of ‘beta’. In addition to the navigator.appMinorVersion, navigator.userProfile can also be used to identify Internet Explorer 6.0. The navigator.userProfile Internet Explorer 6.0 is not undefined.
Unlike most other browsers which return ‘Netscape’ in the navigator.appName property, Internet Explorer returns ‘Microsoft Internet Explorer’. All version of Internet Explorer that was tested returned this value.
Information about the processor architecture is contained within the navigator.cpuClass and navigator.platform properties. 32-bit (x86) and 64-bit (x86-64) architectures will return ‘x86’ for navigator.cpuClass and ‘Win32’ for navigator.platform.