У меня есть контент, введенный пользователем (в настоящее время введен в Markdown), и я хочу разрешить пользователям вставлять видео YouTube, vimeo и т. Д.Так или иначе, мне нужно разрешить определенные теги object
, param
и embed
, в то же время блокируя другие.
В настоящее время я выполняю очистку HTML с помощью белого списка.Я понимаю, что мог бы настроить белый список, чтобы он специально разрешал объекты, указывающие на определенные URL-адреса, но написание этого для всех различных видов онлайн-сервисов кажется кошмаром обслуживания.
Вот моя логика.У нас есть Markdown, который по своей природе (в основном) безопасен.Помимо злонамеренно введенного содержимого в Markdown, фактические теги, отображаемые Markdown, гарантированно безопасны, поэтому, например, если я запускаю вывод через oembed или видеофильтр , эти созданные теги будут безопасными.Так что, если бы я мог как-то узнать, что эти сгенерированные теги были безопасными, а затем только лишить других, это решило бы проблему.Я просто не уверен, какой будет зацепка.
Мне интересно, есть ли уже простой способ сделать это в Python или мне нужно придумать какой-нибудь умный взлом.