July 20th, 2021

hitech

macOS Big Sur и user_agent

 


Как говорится, Сегодня Я Узнал/Today I learned (СЯУ/TIL), что оказывается все без исключения десктопные браузеры на новой MacOS некорректно сообщают свою версию OS.

О чём здесь речь: как многие наверное слышали, в прошлом году Apple изменил нумерацию версий своей десктопной OS, и после версий 10.1, 10.2, …., 10.15 последовала версия 11, следующая будет 12, и.т.д. Ещё на заре интернета, браузеры традиционно сообщали серверам, помимо собственного названия и версии, тип и конкретную версию операционной системы, под которой они запущены. Так оно и продолжалось много лет … до прошлой осени.

Поначалу, ничто не предвещало беды. До какого-то момента, браузеры под бета-версиями macOS 11 a.k.a. "macOS Big Sur " честно сообщали, что версия OS 11.0; но потом что-то пошло не так.

11.4 или 10.15?

Что именно произошло, однако, версии несколько разнятся. 15 сентября прошлого года, за два месяца до официального релиза, один из девелоперов эппловского Webkit’а добавил в систему баг и соответсвующий ему патч со следующим описанием проблемы:

The world apparently isn’t ready for macOS 11.0 in User Agents. Because of the depressing UA sniffing code on the web, let’s just report our current shipping release until things settle down.

Иными словами, как утверждается, слишком много веб сайтов проверяло user_agent браузера на версию 10.<что-то>, и версия 11 их сбивала с толку.

Что интересно, ни одного примера такого сайта автор комментария привести не смог. Вообще, сейчас довольно редко сайты ломаются из-за какого-то не вполне стандартного user_agent (а те, которые ломаются, конечно, сами заслужили свою судьбу). Ещё немного менее вероятно, чтобы сайт сломался конкретно из-за версии 11.Х вместо 10.Х.

Но это ладно. Интереснее, что вместо корректной версии, Webkit сообщает версию последнего на данный момент релиза предыдущей версии, 10.15 (сейчас это, например, 10.15.7). У авторов резонно поинтересовались, не логичней ли тогда было бы сообщать версию 10.16 (не существующую в реальности)? Тогда всем было бы понятно, что 10.16.Х соответсвует на самом деле 11.Х. На это другой девелопер ответил следующее:

The long term goal is to limit the disclosure of the underlying macOS via user agent string and other means since it can be used for finger printing purposes.

Ну то есть, дело совсем не в том, что какие-то сайты не работают, а просто мы теперь будем врать о конкретной версии OS, чтобы труднее было идентифицировать пользователей и собирать о них какую-то аналитику (для чего почти всегда и используется user_agent в наши дни).

Забавно, что все без исключения остальные браузеры (сейчас кроме самого Эппла, почти никто больше не использует WebKit) немедленно последовали этому примеру: Хром, Firefox, Опера, Микрософтовский Edge, и.т.д. Конкретно Firefox пошёл даже несколько дальше и сообщает версию OS просто как 10.15, без последней цифры.

В итоге, например, сегодня почти невозможно собрать какую-то достаточно полную информацию о количестве пользователей MacOS 11 по сравнению с предыдущими версиями. Все существующие средства веб-аналитики эту версию не видят.

И это всё, видимо, во имя пресловутой «прайваси».

И вот кстати ещё интересно. Тут как раз вроде выходит новая Windows 11. Они тоже последуют примеру Эппла, как они это последнее время нередко делают? Особой причины у них нет (MacOS 10 существовала 20 лет, WIndows 10 только 6), но как известно для подражания Эпплу особая причина не нужна.



See copy at dreamwidth for more comments; currently it has comment count unavailable.