Сайдкар жёстко задаёт таймзону МСК поверх geoip — camoufox предупреждает о детекте при расхождении с IP #3187

Open
opened 2026-08-28 18:05:46 +00:00 by bot-backend · 0 comments
Collaborator

Найдено при проверке #3185 — тот же класс дефекта, второе предупреждение camoufox в том же логе.

Что пишет библиотека

LeakWarning: Please use the `geoip` parameter in Camoufox instead of setting
your geolocation manually. This can lead to detection if your target geolocation
does not match your IP. Pass `geoip=True` or a target IP to let Camoufox
populate this data for you.

Появляется при каждом запуске браузера, для всех провайдеров.

Почему появляется

tradein-mvp/browser/server.py, _launch_browser: geoip: True стоит, но рядом жёстко задана таймзона:

# Форсим таймзону +3 МСК. geoip берёт tz одного IP на старте, а БэкКоннект
# ротирует IP на каждый запрос (видели Ульяновск UTC+4 при выходе СПб/МСК) →
# геолик tz↔IP. Жёсткий Europe/Moscow убирает рассинхрон для РФ-мобильного.
"config": {"timezone": "Europe/Moscow"},

В чём дефект

Лечение верно ровно для тех выходов, которые и так в UTC+3. Для выхода в другой зоне жёсткий Europe/Moscow создаёт ровно тот рассинхрон tz↔IP, о котором предупреждает библиотека, — просто в обратную сторону.

Причём случай из самого комментария — Ульяновск, UTC+4 — это именно он. Автор видел ульяновский выход, зафиксировал МСК, и для ульяновского выхода мы теперь заявляем МСК при UTC+4-адресе.

Исходная проблема (geoip берёт зону одного IP на старте, а бэкконнект ротирует адрес на каждый запрос) реальна. Но нынешнее решение её не устраняет, а меняет знак: раньше рассинхрон случался при ротации, теперь он постоянен для всех не-UTC+3 выходов.

Что выяснить перед правкой

  • Какие зоны реально есть в пуле. Если все выходы UTC+3 — дефект теоретический, и достаточно подавить предупреждение осознанно. Если нет — считать, у какой доли запросов зона расходится.
  • Умеет ли camoufox брать geoip под конкретный адрес на запуск инстанса (в API есть geoip='1.2.3.4'), а не «на старте вообще». Если да, правильное лечение — передавать текущий exit-IP при запуске, а не фиксировать зону константой.

Варианты

  1. geoip=<текущий exit-IP> при запуске инстанса, ручную зону убрать — устраняет и исходный рассинхрон, и предупреждение.
  2. Если exit-IP на момент запуска неизвестен — привязывать зону к узлу пула, а не к глобальной константе.
  3. Если все выходы всё же UTC+3 — оставить как есть, но задокументировать, что предупреждение осознанное.

Приёмка

  • Известно распределение таймзон выходов пула
  • Зона согласована с адресом либо доказано, что расхождение невозможно
  • LeakWarning про геолокацию либо исчез, либо подавлен осознанно, с обоснованием в комментарии

Оценка S/M. Refs #3185, #3177

Найдено при проверке #3185 — тот же класс дефекта, второе предупреждение camoufox в том же логе. ## Что пишет библиотека ``` LeakWarning: Please use the `geoip` parameter in Camoufox instead of setting your geolocation manually. This can lead to detection if your target geolocation does not match your IP. Pass `geoip=True` or a target IP to let Camoufox populate this data for you. ``` Появляется при каждом запуске браузера, для всех провайдеров. ## Почему появляется `tradein-mvp/browser/server.py`, `_launch_browser`: `geoip: True` стоит, но рядом жёстко задана таймзона: ```python # Форсим таймзону +3 МСК. geoip берёт tz одного IP на старте, а БэкКоннект # ротирует IP на каждый запрос (видели Ульяновск UTC+4 при выходе СПб/МСК) → # геолик tz↔IP. Жёсткий Europe/Moscow убирает рассинхрон для РФ-мобильного. "config": {"timezone": "Europe/Moscow"}, ``` ## В чём дефект Лечение верно ровно для тех выходов, которые **и так** в UTC+3. Для выхода в другой зоне жёсткий `Europe/Moscow` создаёт ровно тот рассинхрон tz↔IP, о котором предупреждает библиотека, — просто в обратную сторону. Причём случай из самого комментария — **Ульяновск, UTC+4** — это именно он. Автор видел ульяновский выход, зафиксировал МСК, и для ульяновского выхода мы теперь заявляем МСК при UTC+4-адресе. Исходная проблема (`geoip` берёт зону одного IP на старте, а бэкконнект ротирует адрес на каждый запрос) реальна. Но нынешнее решение её не устраняет, а меняет знак: раньше рассинхрон случался при ротации, теперь он постоянен для всех не-UTC+3 выходов. ## Что выяснить перед правкой - **Какие зоны реально есть в пуле.** Если все выходы UTC+3 — дефект теоретический, и достаточно подавить предупреждение осознанно. Если нет — считать, у какой доли запросов зона расходится. - Умеет ли camoufox брать `geoip` под конкретный адрес на запуск инстанса (в API есть `geoip='1.2.3.4'`), а не «на старте вообще». Если да, правильное лечение — передавать текущий exit-IP при запуске, а не фиксировать зону константой. ## Варианты 1. `geoip=<текущий exit-IP>` при запуске инстанса, ручную зону убрать — устраняет и исходный рассинхрон, и предупреждение. 2. Если exit-IP на момент запуска неизвестен — привязывать зону к узлу пула, а не к глобальной константе. 3. Если все выходы всё же UTC+3 — оставить как есть, но задокументировать, что предупреждение осознанное. ## Приёмка - [ ] Известно распределение таймзон выходов пула - [ ] Зона согласована с адресом либо доказано, что расхождение невозможно - [ ] `LeakWarning` про геолокацию либо исчез, либо подавлен осознанно, с обоснованием в комментарии Оценка S/M. Refs #3185, #3177
bot-backend added the
bug
scope/devops
scrapers
tradein
labels 2026-08-28 18:05:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3187
No description provided.