Очистка типов носителей URI с помощью Bleach для предотвращения XSS
У меня есть проект Django, который позволяет пользователям регистрироваться и писать статьи в блоге. Я использую Django Medium Editor в качестве WYSIWYG и Bleach для очистки пользовательского ввода. Я бы хотел, чтобы пользователи могли перетаскивать изображения в свои статьи. В настоящее время Django Medium Editor обрабатывает это с помощью base64, кодируя их в статью при вставке.
В соответствии с документами Bleach я могу внести в белый список <img>
тег и data
протокол, так что эти изображения не удаляются, но я хотел бы ограничить типы носителей данных URI data:image/png
а также data:image/jpg
только для того, чтобы не дать кому-то ввести скрипт с data:text
,
Я искал документы и гуглил вокруг, но не могу найти никаких ответов относительно того, как решить эту проблему, кроме этого запроса извлечения, который, кажется, еще не был объединен.
Стоит ли даже использовать протокол URI данных, чтобы разрешить только изображениям открывать проект до уязвимостей? Если да, то какие еще есть варианты?
Спасибо!