Modern web browsers leak a ridiculous amount of information through the User-Agent
header. The following is an example for Safari on iPad, from Wikipedia:
Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
It is clear that the information provided here goes way beyond what makes any sense for the purposes of browser/OS targeting by legitimate web services. Indeed, the only thing that this level of detail seems to do is facilitate tracking and browser fingerprinting, and unsurprisingly it is used for that extensively.
Why do browser vendors allow/support this? Why isn't something like
Mozilla/5.0 (Safari 5.1; iOS/iPad; en-us)
enough? Even en-us
should not be needed as it's duplicated by the Accept-Language
header, and whether the server has any right to know what device I am using is debatable as well, leaving us with
Mozilla/5.0 (Safari 5.1; iOS)
which still captures the browser and OS version and should therefore be completely sufficient for all legitimate purposes.