Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумБраузеры и профили

Часовой пояс и язык разъехались с адресом

Лена Соболева
Лена Соболева
Участник
сообщений 385
с дек
1 января, 08:12первое сообщение

Профиль ходит через свой порт, вроде всё ровно, но одна площадка второй день просит подтверждение при входе. Полезла смотреть сама и увидела картину: время в браузере московское, язык ru-RU, а обращение приходит совсем с другой стороны света.

Как вы это сводите? Выставлять пояс руками под каждый порт кажется адом.

hexdump
hexdump
Знаток
сообщений 940
с июн
8 июня, 11:29#2

Руками и правда ад. Сначала разберись, откуда сайт вообще берёт пояс, источников там три и они независимые.

Первый: Intl.DateTimeFormat().resolvedOptions().timeZone, отдаёт имя зоны вроде Europe/Moscow. Второй: new Date().getTimezoneOffset(), отдаёт смещение в минутах. Третий: время в заголовке Date у самого запроса, оно берётся с машины.

Скрипты сверки сравнивают первое со вторым, а внимательные ещё смотрят, бьётся ли смещение с летним переводом для этой зоны. Подменять одно имя зоны бесполезно: смещение остаётся прежним, и расхождение вылезает в одну строку.

const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
const off = -new Date().getTimezoneOffset() / 60;
console.log(tz, off, new Date().toString());

В нормальном антидетекте пояс переводится в режим по подключению, и браузер сам подтягивает имя зоны, смещение и локаль разом. Тогда сводить руками не приходится вообще.

mila_ops
mila_ops
Новичок
сообщений 175
с апр, второй сезон
15 ноября, 14:46#3

а если пояс менять расширением, это заметно? у меня как раз такое стоит

Дарья Смолина
Дарья Смолина
Участник
сообщений 340
с дек
22 апреля, 17:03#4

mila_ops, расширение правит то, что видит скрипт, а заголовок запроса и системное смещение остаются прежними. Расхождение никуда не денется, только спрячется на уровень глубже.

Язык при этом отдельная история. В профиле правят одно поле, хотя их два: заголовок Accept-Language уходит с каждым запросом, navigator.languages читается скриптом. Расходятся они постоянно.

Проверяется на своём же обработчике: печатаешь заголовок и рядом печатаешь то, что вернул скрипт. Совпало значит порядок. Ещё мелочь: navigator.language и первый элемент navigator.languages обязаны совпадать, а список из одного элемента встречается редко и сам по себе бросается в глаза.

Лена Соболева
Лена Соболева
Участник
сообщений 385
с дек
1 сентября, 08:20#5
hexdump: подменять одно имя зоны бесполезно

Вот тут и была моя ошибка. Ставила зону в настройках профиля, смещение оставалось системным.

Перевела все профили в режим пояса по подключению, язык выставила там же, расширение снесла. Сверила заголовок и вывод скрипта, совпадает. Подтверждений при входе второй день нет.