Biblioteca segura de Python Markdown

Me gustaría permitir que los usuarios dejen comentarios de texto enriquecido, posiblemente utilizando markdown. He instalado las bibliotecas utilizadas en Reddit, pero estoy preocupado por el ataque de inyección de javascript que ocurrió el año pasado, especialmente porque todavía no tengo claro los detalles de cómo se realizó el ataque. ¿Debo estar preocupado por la seguridad de los comentarios? ¿Hay una cadena de prueba que pueda poner a través de mi sistema para buscar las mismas fallas que eliminaron reddit?

Reddit ahora usa la biblioteca de descuentos de rebajas .

Python-Markdown , el “estándar” más o menos, tiene una función de “modo seguro” que escapa a las tags html. Eso debería ser suficiente para contrarrestar la mayoría de los ataques de inyección de HTML.

Las otras respuestas mencionan el modo seguro de Python-Markdown, pero ahora está en desuso. Los autores de Python-Markdown han sido citados diciendo:

“modo seguro” fue una mala elección de nombre que continuamos usando para la comparación hacia atrás (el código antiguo aún funciona con nuestras versiones más nuevas). Lo que realmente es es un modo sin marcas. En otras palabras, es solo una manera de no permitir el html en bruto y realmente no garantiza la seguridad.

Ahora recomiendan usar un desinfectante HTML como Bleach para desinfectar la salida de Markdown. mdx_bleach es una extensión de Python-Markdown que hace precisamente eso. Descargo de responsabilidad: Soy el autor de esta extensión.

Debido a que usa html5lib para analizar fragmentos de documentos de la misma manera que lo hacen los navegadores, Bleach es extremadamente resistente a ataques desconocidos, mucho más que los desinfectantes basados ​​en expresiones regulares.