как проверить, что содержимое файла соответствует его расширению

#java

#java

Вопрос:

Мой веб-сайт позволяет загружать файлы [txt, csv, pdf, xlsx, xls, doc, docx, mp4 …]. Чтобы предотвратить вредоносные атаки, я не хочу, чтобы [exe, bat …] загружал файлы, замаскированные под указанные выше. Как я могу проверить, что содержимое и расширение загруженного файла на моем веб-сайте являются macthed.

Комментарии:

1. Я думаю, вам понадобятся разные библиотеки для проверки каждого типа файла. Попробуйте прочитать файл xls с соответствующей библиотекой, и если это не приведет к сбою, содержимое соответствует его расширению. Сделайте то же самое для любого другого расширения.

2. если единственной проблемой являются вредоносные атаки, вы можете использовать API-интерфейс онлайн-антивирусного сканера для сканирования файлов перед передачей на ваш сервер

Ответ №1:

В системах Linux / Unix есть file команда, которая проверяет файл и определяет тип файла. В вашем случае я бы попытался повторно использовать эту логику, а не реализовывать что-то самостоятельно.

Я не уверен, доступна ли эта команда в Windows. Возможно, вы захотите получить его через Cygwin или скомпилировать самостоятельно.