PowerScan
RU

Несовпадение часового пояса: самая дешёвая проверка согласованности в интернете

Отпечатки браузера · 5 мин чтения · Автор: PowerScan

Фото: Unsplash

Из всех проверок согласованности, которые может выполнить сайт, сравнение часовых поясов — самая дешёвая. Ей нужен один вызов JavaScript и один поиск, который сервер и так делает. Это же одна из самых частых причин, по которой аккаунт привлекает повышенное внимание.

Два часовых пояса, два источника

Первый часовой пояс берётся из вашего адреса. Сервер знает, откуда пришёл запрос, и с помощью геолокационной базы сопоставляет адрес с регионом и его часовым поясом. Для парижского соединения это Europe/Paris. Это происходит на сервере; браузер здесь ни на что не влияет.

Второй берётся из вашего браузера. Intl.DateTimeFormat().resolvedOptions().timeZone возвращает IANA-имя, настроенное в операционной системе, а new Date().getTimezoneOffset() возвращает текущее смещение от UTC. Если на машине выставлен Берлин, страница увидит Europe/Berlin, независимо от того, откуда пришли пакеты.

Почему они расходятся

Честные причины: путешествие, ноутбук, у которого регион часов так и не сменили, и корпоративные сети, выходящие в другой стране. Причина, которая интересует сайты, — прокси: браузер в одной стране использует адрес в другой, и о часах никто не подумал. У Парижа и Берлина одно и то же смещение, поэтому по одному смещению они бы совпали; IANA-имя не совпадает. Проверки, сравнивающие имена, это ловят, поэтому диагностика показывает и имя из браузера, и имя из адреса, а не числовое смещение.

Что означает несовпадение

Само по себе ничего определённого. Его вызывает множество настоящих людей. Но это дешёвый сигнал, а скоринговые системы складывают дешёвые сигналы. Несовпадение плюс адрес, классифицированный как хостинг, плюс кандидат WebRTC в третьем месте — совсем другая история, чем одно лишь несовпадение.

Как их согласовать

Есть два способа получить согласованный результат. Установить часовой пояс операционной системы по адресу: это работает, но неудобно, когда несколько профилей используют разные адреса. Или позволить браузерному профилю переопределять сообщаемый часовой пояс, как делают специализированные браузеры: часовой пояс профиля следует за адресом, с которым он запущен, и два имени совпадают автоматически. Второй подход должен также охватывать текущее смещение, переходы на летнее время и локализованные строки дат, потому что скрипт может сравнить всё это. Профиль, который сообщает Europe/Paris, но форматирует даты со смещением Берлина, лишь переместил противоречие.

На что смотреть в отчёте

Диагностика, которая показывает «Time zone based on IP» и «Time zone» рядом и отмечает их, когда они различаются, делает ровно то, что сделала бы проверка на сайте. Если они совпадают, проверка пройдена. Если нет, теперь вы знаете, какой из них менять. В любом случае полезно само сравнение, а не оценка, приписанная к нему.

Все статьи · Запустить проверку