Ресурсы · 117
ZIP и TAR: извлекать в пределах каталога и ресурсов
Проверять пути, ссылки и распакованные данные до публикации файлов.
Обновлено · 2 min
Чего помогает достичь это руководство
- Выбрать изолированный каталог
- Ограничить фактическую работу
- Публиковать только полный результат
Быстрая проверка
- Правила путей и изолированный рабочий каталог.
- Явные бюджеты и остановка при реальном превышении.
- Матрица отказов и доказательство полной публикации.
Пошаговый метод
- 1
Выбрать изолированный каталог
Извлекайте в новый непубличный каталог с минимальными правами. Отклоняйте абсолютные пути, выход вверх, ненужные ссылки и специальные файлы. Проверяйте разрешённые пути и коллизии по правилам целевой системы, включая регистр. Текстовый префикс не доказывает изоляцию.
Правила путей и изолированный рабочий каталог.
- 2
Ограничить фактическую работу
Задайте отдельные и суммарные пределы записанных байтов, записей, глубины, времени и ресурсов процесса. Сжатого или заявленного размера недостаточно. Запретите ненужные вложенные архивы; иначе используйте общий бюджет. Обновляйте библиотеку и фильтры.
Явные бюджеты и остановка при реальном превышении.
- 3
Публиковать только полный результат
Проверьте ../, абсолютный путь, ссылку, дубликат и превышение бюджета. Сбой оставляет пакет неопубликованным и не заменяет существующие файлы. Проверьте типы и содержимое до публикации; при очистке подтвердите каталог назначения.
Матрица отказов и доказательство полной публикации.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"compressed_mb": 2,
"expanded_mb": 600,
"aggregate_budget_mb": 100,
"first_files_valid": true,
"expected": "stop_on_actual_overrun_and_do_not_promote"
}Ожидаемое решение
Вымышленный пример: 2 МБ сжатых данных дают 600 МБ при бюджете 100 МБ. Остановитесь при превышении записанных байтов и не публикуйте пакет, даже если первые файлы выглядят правильными.
Python — tarfile extraction filters and further verification
Ваш журнал приёмки
Запишите наблюдения по критериям руководства. Журнал не является сертификацией.
Автоматического сохранения нет. Экспортируйте до выхода.
Фильтры не ограничивают экспорт. Действия включают проблемы и непроверенные критерии.
Импорт заменит наблюдения после вашего подтверждения.
Показатели управления
| Показатель | Что он измеряет | Первое действие |
|---|---|---|
| Наблюдаемые распакованные байты | Сумма фактически записанных байтов пакета | Сравнить с общим бюджетом, не ZIP |
| Отклонённые неопубликованные пакеты | Неверные пакеты без публикации / проверенные неверные пакеты | Включить ошибки в процессе извлечения |
Распространенные ошибки
Часто задаваемые вопросы
Гарантирует ли маленький архив или фильтр безопасность?
Нет. Он может сильно вырасти. Добавьте ограничения ресурсов, правила путей и проверку извлечённых файлов.
Официальные ссылки
Ссылки подтверждают метод. Адаптируйте проверки к вашему контексту; они не являются сертификацией. Оригинальные названия ссылок и исходные документы могут быть на другом языке.
Источники проверены .






