fix: устранены все найденные аудитом баги и тихие падения
- SQL injection паттерн → параметризованные запросы во всех местах - except: pass/continue → logger.warning() везде, ничего не тонет молча - WAL mode + индекс domain_dedup_key в database.py - try/finally для conn в main.py, утечка соединения устранена - backoff 30с при 403/429 от Rusprofile/ЕГРЮЛ - ликвидированные компании → egrul_status="liquidated" - max_candidates в contacts_finder считает только реальных кандидатов - DB_PATH абсолютный (Path(__file__).parent), HH_PAUSE_BETWEEN_QUERIES в config - HH_SIGNAL_QUERIES дубль убран из launcher.py → импорт из config - path traversal защита в egrul_enricher debug_dump_html Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ False positives возможны (например, упоминание "yclien
|
||||
"""
|
||||
import logging
|
||||
import re
|
||||
import time
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
@@ -273,6 +274,7 @@ def analyze_website(url: str, timeout: float = 6.0) -> dict:
|
||||
timeout=(timeout, timeout), verify=False, stream=False,
|
||||
)
|
||||
if sub_resp.status_code != 200:
|
||||
time.sleep(0.5)
|
||||
continue
|
||||
sub_html = sub_resp.text[:MAX_HTML_BYTES]
|
||||
sub_inn, sub_ogrn, sub_kpp = _extract_inn_ogrn_kpp(sub_html)
|
||||
@@ -281,8 +283,11 @@ def analyze_website(url: str, timeout: float = 6.0) -> dict:
|
||||
ogrn_val = ogrn_val or sub_ogrn
|
||||
kpp_val = kpp_val or sub_kpp
|
||||
logger.debug(f" ИНН найден на {path}: {inn_val}")
|
||||
time.sleep(0.5)
|
||||
break
|
||||
except Exception:
|
||||
time.sleep(0.5)
|
||||
except Exception as e:
|
||||
logger.warning(f"[website_analyzer] подстраница {path} сайта {url}: {e}")
|
||||
continue
|
||||
if inn_val:
|
||||
result["inn"] = inn_val
|
||||
|
||||
Reference in New Issue
Block a user