Документация по безопасной загрузке файлов (https://docs.djangoproject.com/en/2.0/ref/models/fields/#file-upload-security) не вполне отвечает моим опасениям.
Рассмотрим следующий вариант использования: (потенциально злонамеренный) пользователь может использовать форму для загрузки файлаЯ хочу реализовать следующие элементы управления (возвращая сообщение об ошибке и не принимая файл, если он не соответствует):
- файл должен быть менее 50 МБ
- файлимя должно иметь формат ^ [a-zA-Z0-9_] {1250} .csv $
- файл должен быть закодирован в формате ANSI
- будет разрешен только белый список символов ANSI внутри файла(например [a-zA-Z1-9;])
- защита метаданных для предотвращения внедрения кода через вредоносные метаданные
Каков наилучший способ реализовать это?Я забыл важные элементы управления для этого варианта использования?