8 ms·
The User-Agent string for Big Sur's Safari running on Apple Silicon (ARM) still says "Mac OS X 10_16" and, curiously, claims to be "Intel": "Mozilla/5.0 (Macin
by cpeterso 6y ago
The User-Agent string for Big Sur's Safari running on Apple Silicon (ARM) still says "Mac OS X 10_16" and, curiously, claims to be "Intel":
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15"
- tasogare 6y agoUser agents have been garbage for decades. Keeping Safari’s one like it is is probably a good idea, who knows which websites could break if changed.
- ladberg 6y agoNot sure why you're being downvoted, but this is exactly the reason. Chrome on Windows includes "Safari" in the user agent and Chrome on Android includes "Mobile Safari" because if they don't add it, tons of websites will break. Everyone does this, which is kinda why we need to get rid of user agents and replace it with feature detection (and css that works everywhere for people who don't want to run Javascript).
- baggy_trough 6y agoBrowsers have bugs so it's not really possible to do that and maintain a reliable web.
- alerighi 6y agoBugs should be fixed by who produces the browser and not by the website administrator by looking at the user agent and using workarounds. When someone asks me to build I site for them I say, look I will guarantee that the site that I make is compliant with the W3C specification. If there is something that it doesn't work because some browser don't implement the standard correctly, you go to Microsoft to complain, or you install a decent browser like Firefox.
- baggy_trough 6y agoI admire your idealism, but here on planet Earth engineers are paid to make things work.
- kortilla 6y agoLol, I don’t know who your clientele are but producing websites that don’t work on popular browsers “because the browser is not following spec” is a non-starter. A bank wants a banking website its customers can use, not a website 60% of its customers can use and a link to a 7 year old bug report.
- sdinsn 6y agoDisagree. You can't just tell your customers "my product doesn't work because of Microsoft, go complain to them; even though it's possible for me to work around it, I'm choosing not to".
- account42 6y agoHave you tried?
- AnonC 6y ago> Bugs should be fixed by who produces the browser and not by the website administrator by looking at the user agent and using workarounds. IE 6 had such a history where it held back other browsers and developers were held hostage to it for several years. Now we have Chrome to fill that gap and some Google platforms won’t work well or work the same on Firefox.
- ladberg 6y agoThen part of feature detection could be detecting bugs and working around them. This wouldn't have to be done by every web developer, but bundled into a commonly used library so cruft can be taken out when browsers fix bugs.
- baggy_trough 6y agoHow would that library be any better than using user agent strings? I think it would likely be worse.
- ladberg 6y agoIf a browser updates with a new feature that Chrome already has and other sites already use, the users get to use the new feature with no update from the developers due to feature detection.
- baggy_trough 6y agoI don't disagree with you on feature detection, but there is no feasible way to encode all browser bugs that require workarounds into a library. By nature, these are usually extremely niche.
- deleted 6y ago[deleted]
- toast0 6y agoJavascript feature detection is much too late when you need to send headers with the HTML and browser vendors can't agree on the header values or change their mind on what things mean. Like the samesite cookie nonsense: https://www.chromium.org/updates/same-site/incompatible-clients https://www.chromium.org/updates/same-site/incompatible-clie... Assuming things like that continue to happen, what are web developers supposed to do? I propose a Real-Agent header that includes browser name and version, os name and version, cpu type (maybe) and desktop/mobile flag (maybe). Or separate headers for each name/version data, I don't care, I just know I need real data sometimes, and some new weird server request pattern isn't going to work well. Then continue to send shakespearean sonnets in user-agent for all I care.
- m45t3r 6y agoThis makes sense since it should avoid two issues: - Sites that try to detect mobile by looking at "ARM" in user-agent string - Sites that try to parse the macOS minor version for some reason and would be confused to see something like "11_0" BTW, user-agent is a hell anyway. Just looking at this user-agent that OP posted, macOS still identifies itself as "Mac OS X", still is based on Mozilla/5.0(!), still identifies itself as KHTML enginee (compatible with Gecko), and so on...
- empyrical 6y agoAlso, whether a system is ARM or Intel could be used as another bit of entropy for fingerprinting.
- gruez 6y agoYou can probably get the same information by looking at the webgl fingerprint, since the iGPU inside the A12Z is different than the ones used in Intel macs.
- alerighi 6y agoIt's more complex and requires to use JavaScript that you can block in the browser, while the user agent is always sent to the server on every request, and thus is much easier to fingerprint the user with that.
- fluffything 6y agoAnd doing this encourages websites that actually need to detect this platform properly to introduce the next generation of horrible things.
- dwaite 6y agoBrowsers will almost certainly begin to phase out user agent strings anyway: https://www.zdnet.com/article/google-to-phase-out-user-agent-strings-in-chrome/ https://www.zdnet.com/article/google-to-phase-out-user-agent... . In the vast majority of use cases, these values should not be used to detect platform features - actual feature detection should be used instead.
- agloeregrets 6y agoThis is because iPadOS also claims to be a Mac
- messe 6y agoiPadOS Safari does the same: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15"
- nothis 6y agoNotice it also identifies as "Mozilla", because User-Agent strings are more about not breaking shit than actually reporting what's going on.
- justinator 6y agoThis was originally done by IE way back in the day, for a variety of reasons - one being to not block IE. So, they just masqueraded the IE browser as Netscape. It's been a mess every since.
- r00fus 6y agoYeah, it's one of those pernicious things that highlights that a powerful player like Microsoft can essentially lie or disregard standards for their own benefit and thus cheapen the entire purpose of the rule.
- jdm2212 6y agoAlways good for a laugh: https://webaim.org/blog/user-agent-string-history/ https://webaim.org/blog/user-agent-string-history/
- developer2 6y agoI don't know whether to laugh, or to instead be triggered by the traumatic memories which were buried deep within the recesses of my mind until now and assume the fetal position.
- birdyrooster 6y ago> The User-Agent string Allow me stop you there. The User-Agent string is semantically meaningless.
- eyelidlessness 6y agoUA strings are NOTORIOUS liars, see the rest of the UA strings you quoted