Как обезопасить загрузку PNG на django? - PullRequest
0 голосов
/ 16 февраля 2020

Я размещаю Django приложение, использующее Nginx, которое обслуживает мультимедиа и файлы c в том же домене . В Django документах они предупреждают об уязвимости для злонамеренных загрузок PNG:

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

Обслуживание моих сообщений c и медиафайлов на S3 для пример не вариант в моем случае.

Кроме того, я не уверен, полностью ли я понимаю их вторую рекомендацию. Рекомендуется вносить файлы в белый список по его расширениям, но что должно быть в моем белом списке? .html или .png?

В nginx.conf я изменил с default_type application/octet-stream; на default_type text/plain;.

Это достаточно безопасно? Я просто хочу убедиться, что смогу обслуживать stati c и мультимедийные файлы самостоятельно в одном домене, не полагаясь на безопасность третьих сторон.

Буду признателен за некоторые ссылки, касающиеся на эту конкретную проблему c. Найдена некоторая информация, но я хотел бы получить более краткую информацию: ссылка 1 ссылка 2 ссылка 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...