Часовой пояс и язык браузера могут противоречить вашему IP. Разбираем, как возникает несоответствие и как сайты используют его для выявления VPN.
Ваш IP-адрес говорит, что вы во Франкфурте. Часовой пояс системных часов, который JavaScript-движок браузера сообщает сайту, — America/Chicago, а заголовок Accept-Language запрашивает en-US. Эти три факта берутся из совершенно разных источников: геолокация по IP выводится из сетевой маршрутизации, а часовой пояс и язык считываются прямо из операционной системы, — поэтому, когда VPN или прокси меняет только IP, два других сигнала остаются на месте, и противоречие становится заметным любому, кто его проверяет. Это один из самых простых и широко используемых сигналов для выявления нерезидентского подключения.
Ключевые выводы
- Часовой пояс JavaScript и заголовок
Accept-Languageберутся из настроек ОС/браузера, а не из сети — VPN, меняющий IP, по умолчанию не трогает ни то, ни другое. - Часовой пояс или язык, не соответствующие стране IP, — классический и дешёвый признак VPN/прокси, который применяется вместе с блок-листами IP и проверками на утечки WebRTC.
- Одно несоответствие само по себе — слабое доказательство: путешественники, экспаты и распределённые команды каждый день создают реальные расхождения в часовых поясах, поэтому системы обнаружения объединяют его с другими сигналами в общую оценку.
- Коммерческие прокси- и анти-детект-инструменты пытаются автоматически подгонять часовой пояс и язык под регион выходного IP — но неполная или непоследовательная подгонка сама становится обнаруживаемым паттерном.
- Вы можете точно увидеть, что ваш браузер сейчас транслирует по часовому поясу, языку и местоположению IP, с помощью проверки отпечатка и проверки VPN/прокси от BrowserInsight.
Три сигнала из трёх разных источников
Сайт собирает ваш видимый «портрет» из слоёв системы, никак не связанных друг с другом, — и именно поэтому противоречия проскакивают:
- Геолокация по IP выводится на стороне сервера на основе IP-адреса, путём сопоставления с распределением регистратур и коммерческими геобазами. Она отражает место выхода вашего подключения — домашнего интернет-провайдера или VPN-сервера, — а не то, где вы физически находитесь.
- Часовой пояс берётся из часов операционной системы и предоставляется JavaScript через
Intl.DateTimeFormat().resolvedOptions().timeZone, либо более грубо — черезDate.getTimezoneOffset(). Он отражает то, что установили вы (или ваше устройство), а большинство людей оставляют его в режиме «автоматически», привязанным к месту, где они реально находятся. - Язык/регион берётся из списка языков, настроенного в браузере, отправляется с каждым запросом в заголовке
Accept-Languageи доступен в JavaScript черезnavigator.language/navigator.languages. Он отражает выбор, сделанный пользователем при настройке ОС или браузера, — часто родной язык, независимо от того, откуда сейчас идёт подключение.
VPN или прокси мгновенно меняет первый сигнал и не трогает два других, если не задействован какой-то дополнительный механизм. В этом и заключается весь принцип данного метода обнаружения: часовой пояс или язык сами по себе не подозрительны — просто они обычно меняются синхронно с местоположением IP, а туннель разрывает лишь одно звено этой корреляции.
Часовой пояс JavaScript против геолокации по IP
Это самая распространённая версия проверки. Детектор считывает часовой пояс IANA, который сообщает браузер (например, Europe/Berlin, America/New_York), и сравнивает его смещение от UTC со смещением, обычно характерным для страны, в которой геолоцирован IP. Если IP геолоцируется в Германию, а браузер сообщает America/Chicago, такой разрыв в несколько часов не имеет никакого невинного повседневного объяснения для человека, физически находящегося во Франкфурте.
Эта проверка дёшева, потому что оба фрагмента данных уже доступны: сервер уже знает IP-адрес запроса, а одна строка клиентского JavaScript раскрывает часовой пояс. Согласно спецификации семантики HTTP RFC 9110, регулирующей заголовки согласования содержимого, ничего из этого не требует особых разрешений — это обычные, незащищённые метаданные браузера, и именно поэтому они так широко используются как пассивный сигнал.
Стоит отметить, что сама геолокация по IP — лишь приближение: она надёжна на уровне страны, но шумит на уровне города, — поэтому строгий детектор обычно проверяет только правдоподобность часового пояса в пределах страны, а не точное совпадение смещения до минуты.
Accept-Language против страны IP
Вторая линия проверки работает по тому же принципу, но с языком вместо смещения часов. Если IP геолоцируется в Японию, а заголовок Accept-Language запроса содержит только ru-RU и ru, без японского, такая комбинация нетипична для настоящего резидента — хотя далеко не невозможна, поскольку многие путешественники и экспаты пользуются интернетом на родном языке независимо от того, где они находятся.
Именно поэтому несоответствие языка обычно считается более слабым доказательством, чем несоответствие часового пояса: люди меняют страну проживания гораздо реже, чем язык, на котором читают, поэтому заголовок ru-RU с IP из Токио сам по себе лишь слегка подозрителен, но совсем другое дело, если он накладывается на другие противоречия.
Как прокси-сервисы пытаются согласовать эти сигналы
Операторы сетей резидентских прокси и анти-детект-браузеров знают об этой проверке, поэтому многие продукты пытаются автоматически подгонять часовой пояс и язык под регион выхода прокси — подделывая Intl.DateTimeFormat и заголовок Accept-Language, чтобы они соответствовали стране IP, ещё до загрузки страницы.
Это работает лишь настолько, насколько подделка полна и последовательна:
- Частичная подделка встречается часто: инструмент переопределяет JavaScript-API часового пояса, но забывает синхронизировать HTTP-заголовок
Accept-Language, или наоборот — из-за этого два сигнала продолжают противоречить друг другу, даже если оба уже отличаются от исходных значений. - Грубое выравнивание тоже распространено: пул прокси привязывает целую страну к одному фиксированному часовому поясу или одному фиксированному языку, что нормально для маленьких стран, но не работает для регионов с несколькими часовыми поясами (США, Россия, Бразилия) или несколькими распространёнными языками — реальные жители таких регионов демонстрируют куда больше разнообразия, чем равномерно «залатанный» парк прокси.
- Расхождение между слоями возникает, когда часовой пояс на уровне ОС, часовой пояс, сообщаемый JavaScript, и языковой заголовок HTTP патчатся разными механизмами и теряют синхронизацию после обновления браузера или сброса настроек.
Ни один из этих сбоев не виден по отдельному подделанному значению — они проявляются только тогда, когда детектор сверяет несколько сигналов друг с другом и с IP. Именно это и делают проверки отпечатка, основанные на согласованности.
Сравнение сигналов часового пояса и локали
| Сигнал | Источник | Как считывается | Сила как признак VPN | Типичный сбой в прокси-инструментах |
|---|---|---|---|---|
Часовой пояс JS (Intl/Date) | Часы ОС + настройка часового пояса | Клиентский JavaScript | Средняя—высокая | Подделан, но не согласован с HTTP-локалью |
Заголовок Accept-Language | Список языков браузера | Каждый HTTP-запрос | Низкая—средняя | Часовой пояс подделан, заголовок языка забыт |
| Геолокация по IP | Сетевая маршрутизация / базы IP | На стороне сервера | Высокая (для утверждений уровня страны) | Не применимо — это эталонный сигнал для сравнения |
| Совокупная оценка согласованности | Все сигналы выше, сверенные друг с другом | Сервер + клиент | Высокая | Несогласованность между слоями |
Ни одна строка этой таблицы сама по себе не является решающим доказательством — путешественники и международные команды каждый день создают настоящие несоответствия. Польза совокупной оценки именно в том, что она «совокупная»: инструмент, у которого часовой пояс правильный, а язык — нет (или наоборот), больше похож на автоматический патчинг, чем на человека, который и правда живёт сразу в двух часовых поясах.
Как проверить собственную настройку
Если вы хотите понять, что сайт сейчас видит в вашем подключении, пройдитесь по тем же шагам, что и детектор:
- Проверьте, что транслирует браузер. Проверка отпечатка от BrowserInsight в одном месте показывает сообщаемый JavaScript часовой пояс, локаль и список языков.
- Проверьте, что заявляет IP. Запустите IP-разведку или проверку VPN/прокси, чтобы увидеть, в какой стране геолоцируется ваше подключение и не помечено ли оно как известный диапазон VPN/прокси — полный набор сигналов разобран в статье как сайты обнаруживают VPN.
- Сравните вручную. Если IP указывает на одну страну, а часовой пояс или язык явно указывают на другую, и этому нет объяснения, связанного с поездкой, это и есть то самое противоречие, которое предназначен выявлять детектор.
Если вы используете VPN осознанно и хотите, чтобы он выглядел согласованно, практическое решение — выбирать выходной сервер в том часовом поясе, который вы хотите показать, и проверять, совпадают ли сообщаемые браузером часовой пояс и язык с этим регионом, а не полагаться на то, что одной смены IP достаточно.
Часто задаваемые вопросы
Меняет ли VPN автоматически часовой пояс браузера?
Нет. VPN меняет только ваш IP-адрес и сетевой путь трафика. Часовой пояс операционной системы и языковые настройки браузера независимы от сетевого подключения, и большинство VPN не трогают ни то, ни другое.
Достаточно ли одного несоответствия часового пояса, чтобы меня заблокировали?
Обычно само по себе нет. Системы обнаружения объединяют сигналы часового пояса и локали с репутацией IP, проверками на утечки WebRTC/DNS и паттернами подключения в единую оценку доверия. Одно несоответствие повышает подозрительность, но редко вызывает блокировку само по себе.
Почему мой настоящий часовой пояс иногда всё же не совпадает со страной моего IP?
Причин достаточно, и все они законны: путешествие без изменения домашней настройки часового пояса, работа в компании со штаб-квартирой в другой стране, использование корпоративного VPN, маршрутизирующего трафик через другую страну, или просто не обновлённый после переезда автоматический часовой пояс ОС. Именно поэтому системы обнаружения обычно придают этому сигналу небольшой вес.
Как мне увидеть, какой именно часовой пояс и язык сообщает мой браузер?
Откройте проверку отпечатка от BrowserInsight — она показывает ваш JavaScript-часовой пояс, значение Accept-Language и локаль вместе с остальными сигналами отпечатка браузера, чтобы вы могли сравнить их с местоположением, заявленным в результате IP-разведки.
Заключение
Утечки часового пояса и языка — не какой-то изящный отдельный трюк, а побочный эффект того, как браузер собирает идентичность из независимых источников, которые обычно совпадают и лишь иногда расходятся. VPN мгновенно меняет ваш IP, но не трогает часы ОС и языковые настройки, если не задействован дополнительный механизм, — и именно этот разрыв между «что изменилось» и «что осталось прежним» ищет проверка на согласованность. Понимание механизма позволяет проверить собственную настройку, а не полагать, что смены IP достаточно.
Рекомендуем прочитать:


