Дмитрий
aca52d130d
fix(автоподбор): рендер сайта больше не теряет номера при таймауте Playwright
...
Шаг 2: CurlPlaywrightFetcher.site() curl'ом успешно тянул страницу с tel:-номерами,
но render() (node render-page.cjs) висел на waitUntil networkidle и падал по таймауту.
Symfony Process::run() при таймауте бросает ProcessTimedOutException — оно вылетало из
site(), SiteOpener обнулял весь сбор. Итог: 0 номеров с сайта (боевой кейс Центрофинанс,
tenant info@lkomega.ru , прогон 07.07 14:07, только сайт+карточка, ни одного code-номера).
- render()/renderFirm() ловят \Throwable -> null: падение/вис рендера НЕ фатально,
curl-HTML с номерами 'в коде сайта' сохраняется
- render-page.cjs: networkidle -> domcontentloaded + пауза; рендер 30с+вис -> 3.7с (боевая проверка)
- сиды curlRunner/nodeRunner для офлайн-теста; регресс-тест воспроизводит потерю номеров
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-07 18:16:42 +03:00
Дмитрий
6f4e6de9a3
fix(автоподбор): укрепление fetcher — TLS-проверка, SSRF-страж, без редиректов
...
- CURLOPT_SSL_VERIFYPEER/VERIFYHOST включены
- isSafeUrl: только http/https, блок loopback/приватных/служебных IP
- FOLLOWLOCATION выключен, протоколы ограничены HTTP/HTTPS
- render-page.cjs валидирует схему URL перед навигацией
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 10:45:14 +03:00