Il y a removetags, mais il est une approche de listes noires qui ne parvient pas à supprimer les balises quand ils ne regardent pas exactement comme les balises bien formés Django s'attend à ce que, et bien sûr, puisqu'il ne tente pas de supprimer les attributs, il est totalement vulnérable aux 1 000 autres moyens d'injection de script qui n'impliquent pas la balise <script>
. C'est un piège, offrant l'illusion de la sécurité tout en n'offrant aucune réelle sécurité.
Les approches de désinfection HTML basées sur le piratage d'expressions régulières sont presque inévitablement un échec total. Utiliser un analyseur HTML réel pour obtenir un modèle objet pour le contenu soumis, puis filtrer et re-sérialiser dans un format connu, est généralement l'approche la plus fiable. Si votre éditeur de texte enrichi sort du XHTML c'est facile, utilisez simplement minidom ou etree pour analyser le document, puis passez dessus en supprimant tous les éléments et attributs, sauf ceux qui sont connus, et enfin en convertissant en XML sécurisé. Si, d'un autre côté, il crache HTML, ou permet à l'utilisateur d'entrer du HTML brut, vous devrez peut-être utiliser quelque chose comme BeautifulSoup. Voir this question pour une discussion. Filtrage HTML est un sujet vaste et compliqué, ce qui explique pourquoi beaucoup de gens préfèrent les langages de balisage texte-avec-restrictif.
-1 C'est pire que rien, car cela donne l'illusion d'une sécurité sans réel bénéfice. Il y a un million de façons de contourner ce type d'approche de liste noire. –