fix(tradein-browser): camoufox hardening — block_images/webrtc + форс МСК tz (#1796) #1798

Merged
lekss361 merged 1 commit from fix/tradein-browser-camoufox-hardening into main 2026-06-19 16:50:24 +00:00
Owner

Зачем

Ресёрч по camoufox + Avito-антибот (#1796). Прочитал доку camoufox, сверил с нашим server.py, проверил всё на проде через tradein-browser. Нашёл неиспользуемые фичи и реальный геолик.

Что (в tradein-browser/server.py, launch-kwargs camoufox)

  • block_images=True — быстрее грузит страницы (нам нужен HTML/JSON, не картинки). Трафик безлимитный, выигрыш по времени.
  • block_webrtc=True — закрывает WebRTC-leak реального IP контейнера мимо прокси (анти-деанон).
  • config={"timezone":"Europe/Moscow"} — форсим +3 МСК. Проблема: geoip берёт tz одного IP на старте, а БэкКоннект-прокси ротирует IP на каждый запрос → видел tz=Ульяновск (UTC+4) при реальном выходе СПб/Москва (UTC+3) = геолик tz↔IP. Жёсткий Europe/Moscow убирает рассинхрон.

Уже было (оставлено): headless, os=windows, locale=ru-RU, geoip=True, humanize=True, proxy.

Проверено на проде

Комбо geoip=True + config timezone + block_images + block_webrtc + proxy запускается, Intl tz = Europe/Moscow ✓, Avito грузится с объявлениями (капчи нет — ранний «captcha» был ложным маркером на фича-флаге recaptcha_enabled).

Вне этого PR (отдельно)

  • Прокси-env: новый ha.mobileproxy.space:2013 (IP 46.173.16.127 вайтлистнут) — это секрет в env (AVITO_PROXY_URL), не код. Обновить на проде отдельно.
  • WebGL=null (контейнер без GPU) — нужен валидный webgl_config из поддерживаемого camoufox-списка + софт-GL в образе. Отдельный шаг.
  • persistent_context (тёплые сессии Avito) — меняет lifecycle браузера, отдельно.
  • Chrome-fp НЕ грузим — camoufox=Firefox, доки прямо запрещают (V8-tells). Под мобильный Chrome-fp нужен Chrome-антидетект; на camoufox — fingerprint_preset=True (Firefox).

Связано: #1796 (Avito-баны).

## Зачем Ресёрч по camoufox + Avito-антибот (#1796). Прочитал доку camoufox, сверил с нашим `server.py`, проверил всё на проде через `tradein-browser`. Нашёл неиспользуемые фичи и реальный геолик. ## Что (в `tradein-browser/server.py`, launch-kwargs camoufox) - **`block_images=True`** — быстрее грузит страницы (нам нужен HTML/JSON, не картинки). Трафик безлимитный, выигрыш по времени. - **`block_webrtc=True`** — закрывает **WebRTC-leak реального IP** контейнера мимо прокси (анти-деанон). - **`config={"timezone":"Europe/Moscow"}`** — форсим **+3 МСК**. Проблема: `geoip` берёт tz одного IP на старте, а БэкКоннект-прокси **ротирует IP на каждый запрос** → видел **tz=Ульяновск (UTC+4)** при реальном выходе **СПб/Москва (UTC+3)** = геолик tz↔IP. Жёсткий Europe/Moscow убирает рассинхрон. Уже было (оставлено): `headless`, `os=windows`, `locale=ru-RU`, `geoip=True`, `humanize=True`, `proxy`. ## Проверено на проде Комбо `geoip=True + config timezone + block_images + block_webrtc + proxy` запускается, `Intl tz = Europe/Moscow` ✓, Avito грузится с объявлениями (капчи нет — ранний «captcha» был ложным маркером на фича-флаге `recaptcha_enabled`). ## Вне этого PR (отдельно) - **Прокси-env**: новый `ha.mobileproxy.space:2013` (IP `46.173.16.127` вайтлистнут) — это секрет в env (`AVITO_PROXY_URL`), не код. Обновить на проде отдельно. - **WebGL=null** (контейнер без GPU) — нужен валидный `webgl_config` из поддерживаемого camoufox-списка + софт-GL в образе. Отдельный шаг. - **persistent_context** (тёплые сессии Avito) — меняет lifecycle браузера, отдельно. - **Chrome-fp НЕ грузим** — camoufox=Firefox, доки прямо запрещают (V8-tells). Под мобильный Chrome-fp нужен Chrome-антидетект; на camoufox — `fingerprint_preset=True` (Firefox). Связано: #1796 (Avito-баны).
lekss361 added 1 commit 2026-06-19 16:49:39 +00:00
fix(tradein-browser): camoufox hardening — block_images/webrtc + forced MSK tz
All checks were successful
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
b5f439a095
Со всеми знаниями из ресёрча camoufox (#1796 Avito anti-bot):
- block_images=True — быстрее грузит (HTML/JSON, без рендера картинок).
- block_webrtc=True — закрывает WebRTC-leak реального IP мимо прокси.
- config timezone=Europe/Moscow — форсим +3 МСК: geoip+БэкКоннект (ротация IP
  на каждый запрос) давал геолик tz↔IP (Ульяновск UTC+4 при выходе МСК/СПб).
lekss361 merged commit 7c9a3cf09d into main 2026-06-19 16:50:24 +00:00
lekss361 deleted branch fix/tradein-browser-camoufox-hardening 2026-06-19 16:50:24 +00:00
Sign in to join this conversation.
No reviewers
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#1798
No description provided.