Я обнаружил следующее уведомление о безопасности на веб-сайте Django:
Обработка загрузки мультимедиа в Django создает некоторые уязвимости, когда эти носители обслуживаются способами, не соответствующими рекомендациям по безопасности.В частности, файл HTML может быть загружен в виде изображения, если этот файл содержит действительный заголовок PNG, за которым следует вредоносный HTML.Этот файл пройдет проверку библиотеки, которую Django использует для обработки изображений ImageField (Pillow).Когда этот файл впоследствии отображается пользователю, он может отображаться в виде HTML в зависимости от типа и конфигурации вашего веб-сервера.
К сожалению, нет дополнительной информации о том, как защитить веб-сайт от вредоносного PNGпоэтому у меня есть несколько вопросов:
- Как мне настроить свой веб-сервер (nginx)?
- Как я могу сгенерировать HTML в формате PNG для загрузки на сервер и убедиться, что он не будет отображаться какhtml?
- Должен ли я добавить дополнительную проверку изображения при загрузке, и что является лучшим решением / библиотекой (вероятно, libmagick) для этого?