Есть removetags , но это черный список, который не удаляет теги, когда они не выглядят точно так же, как правильно сформированные теги, ожидаемые Django, и, конечно, так как он не пытается удалить атрибуты он полностью уязвим для 1000 других способов внедрения скриптов, которые не включают тег <script>
. Это ловушка, предлагающая иллюзию безопасности, в то время как фактически не обеспечивающая никакой реальной безопасности.
Подходы HTML-санации, основанные на взломе регулярных выражений, почти неизбежно заканчиваются полным провалом. Использование реального анализатора HTML для получения объектной модели для представленного содержимого, а затем фильтрация и повторная сериализация в известном формате - это, как правило, наиболее надежный подход.
Если ваш форматированный текстовый редактор выводит XHTML, это просто, просто используйте minidom или etree для анализа документа, затем пройдитесь по нему, удалив все кроме хорошо известных элементов и атрибутов, и, наконец, преобразуйте обратно в безопасный XML. Если, с другой стороны, он выплевывает HTML или позволяет пользователю вводить необработанный HTML, вам может потребоваться использовать что-то вроде BeautifulSoup. См. этот вопрос для обсуждения.
Фильтрация HTML - большая и сложная тема, поэтому многие люди предпочитают языки с разметкой текста.