Как я могу защитить меня от бомбы zip?

Нет и если бы Вы думаете об этом, это не было бы очень полезно. В Вашем случае Вы не могли быть уверены, что Ваш тестовый прогон будет когда-либо останавливаться, потому что, если всегда будут 'ложные отрицательные стороны то ' всегда будут тесты, которые должны быть запущены...

я сказал бы, что просто необходимо использовать хеш.

51
задан flybywire 21 September 2009 в 22:45
поделиться

7 ответов

Попробуйте это на Python:

import zipfile
z = zipfile.ZipFile('c:/a_zip_file')
print 'total files size=', sum(e.file_size for e in z.infolist())
z.close()
22
ответ дан 7 November 2019 в 10:19
поделиться

Zip - это, хм, «интересный» формат. Надежным решением является потоковая передача данных и остановка, когда у вас будет достаточно. В Java используйте ZipInputStream вместо ZipFile . Последнее также требует, чтобы вы сохраняли данные во временном файле, что тоже не самая лучшая идея.

19
ответ дан 7 November 2019 в 10:19
поделиться

Прочтите описание в Википедии -

Запретите любые сжатые файлы, содержащие сжатые файлы.
Используйте ZipFile.entries () , чтобы получить список файлов, затем ZipEntry.getName () , чтобы найти расширение файла.
Запретите любые сжатые файлы, которые содержат файлы, размер которых превышает установленный, иначе размер не может быть определен при запуске.
Во время перебора файлов используйте ZipEntry.getSize () для получения размера файла.

11
ответ дан 7 November 2019 в 10:19
поделиться

Сначала проверьте заголовок ZIP:)

5
ответ дан 7 November 2019 в 10:19
поделиться

Не позволяйте процессу загрузки записывать достаточно данных для заполнения диска, т. Е. Решать проблему, а не только одну из возможных причин проблемы.

5
ответ дан 7 November 2019 в 10:19
поделиться

Если распаковщик ZIP, который вы используете, может предоставить данные об исходном и сжатом размере, вы можете использовать эти данные. В противном случае начните разархивировать и следите за размером вывода - если он слишком сильно вырастет, отрежьте его.

4
ответ дан 7 November 2019 в 10:19
поделиться

Убедитесь, что вы не используете системный диск для временного хранения. Я не уверен, проверит ли его сканер вирусов, если он его обнаружит.

Также вы можете просмотреть информацию внутри zip-файла и получить список содержимого. Как это сделать, зависит от утилиты, используемой для извлечения файла, поэтому вам необходимо предоставить дополнительную информацию здесь

1
ответ дан 7 November 2019 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: