2.2 KiB
2.2 KiB
Opus — ревью кода DrHider v0.1
Файл задания: /home/naeel/nubes/contracts/contracts-flask/History/opus-drhider-code-review-2026-06-29.md
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. Без БД, всё в памяти.
Ключевые моменты для проверки
_expand_zips: распаковка вложенных ZIP, cp437→utf-8, path traversal, лимиты 500 файлов/500MB_scan_regex: regex-паттерны для телефонов/email/ИНН/ОГРН/компаний. Не ловит ли лишнего? (например passport-паттерн матчит числа)_apply_replacements: замена по сортированным ключам. Не заменит ли подстроку внутри другого слова?_replace_in_docx: замена вparagraphs.runsиtables. Что если слово разбито на несколько runs?_replace_in_text: PDF отдаётся как plain text — теряется форматирование. Нормально для MVP?- Генераторы фиктивных данных: валидные контрольные суммы ИНН/ОГРН, словари ФИО/городов
- Обработка ошибок:
try/exceptв_expand_zips,_scan_llm_ner. Не глотаются ли ошибки молча? - Безопасность: удаление tempdir в
finally, очистка_mapping, нет логов с реальными данными - Потенциальные баги: использовал переменную
inner_nameвместоname(уже исправлено). Есть ли ещё такие?
Код
Читай файлы по абсолютным путям выше.