Files
contracts-flask/History/opus-drhider-code-review-2026-06-29.md
T
naeel 0654a41d29
Deploy contracts-flask / validate (push) Successful in 0s
fix: absolute paths in Opus review
2026-06-29 15:18:18 +04:00

2.1 KiB

Opus — ревью кода DrHider v0.1

29.06.2026

Файлы для ревью

/home/naeel/nubes/contracts/contracts-flask/deploy/services/drhider.py
/home/naeel/nubes/contracts/contracts-flask/site/app.py
/home/naeel/nubes/contracts/contracts-flask/site/templates/drhider.html

Что делает

Загрузка .docx/.pdf/.doc/.zip → обфускация чувствительных данных → ZIP с обезличенными файлами + mapping.csv. Без БД, всё в памяти.

Ключевые моменты для проверки

  1. _expand_zips: распаковка вложенных ZIP, cp437→utf-8, path traversal, лимиты 500 файлов/500MB
  2. _scan_regex: regex-паттерны для телефонов/email/ИНН/ОГРН/компаний. Не ловит ли лишнего? (например passport-паттерн матчит числа)
  3. _apply_replacements: замена по сортированным ключам. Не заменит ли подстроку внутри другого слова?
  4. _replace_in_docx: замена в paragraphs.runs и tables. Что если слово разбито на несколько runs?
  5. _replace_in_text: PDF отдаётся как plain text — теряется форматирование. Нормально для MVP?
  6. Генераторы фиктивных данных: валидные контрольные суммы ИНН/ОГРН, словари ФИО/городов
  7. Обработка ошибок: try/except в _expand_zips, _scan_llm_ner. Не глотаются ли ошибки молча?
  8. Безопасность: удаление tempdir в finally, очистка _mapping, нет логов с реальными данными
  9. Потенциальные баги: использовал переменную inner_name вместо name (уже исправлено). Есть ли ещё такие?

Код

Читай файлы по абсолютным путям выше.