25 lines
1.9 KiB
Markdown
25 lines
1.9 KiB
Markdown
# 2026-08-20 — КРИТИЧНО: mapping.csv (ключ расшифровки) убран из выходного ZIP (v0.0.56)
|
||
|
||
## Проблема (утечка секретных данных)
|
||
Выходной ZIP содержал `mapping.csv` — таблицу соответствия «оригинал → замена»,
|
||
т.е. ключ расшифровки (реальные ФИО/телефоны/ИНН ↔ токены). Если ZIP передать
|
||
третьему лицу — тот получал и обфусцированные файлы, и таблицу расшифровки.
|
||
CSV должен храниться/скачиваться ОТДЕЛЬНО от обфусцированных файлов.
|
||
|
||
## Фикс (drhider/builder.py `build_zip`)
|
||
- Убрана запись `mapping.csv` в архив. Теперь в ZIP — ТОЛЬКО обфусцированные файлы.
|
||
- Параметр `mapping_csv` сохранён в сигнатуре (для совместимости вызовов), но в
|
||
архив не пишется.
|
||
- CSV продолжает генерироваться (`build_mapping_csv`) и отдаваться отдельно
|
||
через `/api/csv/<sid>` (кнопка «Скачать CSV»), как написано на странице.
|
||
|
||
## Тесты (tests/test_builder.py)
|
||
- Блок «ZIP с mapping.csv» переписан: теперь проверяет, что mapping.csv НЕ в архиве.
|
||
- Интеграционный блок: ZIP содержит только doc.md, CSV проверяется отдельной строкой.
|
||
- Все 106 тестов OK.
|
||
|
||
## Проверка
|
||
- python3 tests/test_builder.py — 20/20 OK (включая новый сценарий «mapping не в zip»).
|
||
- Остальные тесты — без изменений поведения, OK.
|
||
- VERSION 0.0.56.
|