v0.0.56: КРИТИЧНО — mapping.csv (ключ расшифровки) убран из выходного ZIP, CSV только отдельно
Deploy drhider / validate (push) Canceled after 0s
Deploy drhider / validate (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user