2011-12-07 5 views
9

Python-Markdown incluye características como el escape de HTML sin formato que obviamente están destinadas a hacer que sea seguro en entradas no confiables, y en términos generales, Markdown se usa comúnmente para representar la entrada del usuario, como aquí en SO.¿Es python-markdown seguro en una entrada que no es de confianza?

¿Pero esta implementación es realmente confiable? ¿Alguien ha estudiado esto para decidir si es seguro ejecutar una entrada arbitraria?

Veo que hay eg Markdown in Django XSS safe y Secure Python Markdown Library pero es el modo "seguro" realmente seguro?

+1

¿Tiene alguna razón para creer que no lo es? El modo seguro en Django debería funcionar perfectamente si lo proporciona correctamente, ya que es un marco bastante maduro y mucha gente lo usa. Si hubiera algún riesgo obvio de seguridad, las personas ya lo habrían encontrado. – Codahk

+4

es seguro. pero si es "realmente seguro" depende de su definición de "realmente seguro" –

Respuesta

5

La biblioteca de Python Markdown parece ser segura por lo que nadie sabe, if you use it properly. Consulte el enlace para obtener detalles sobre cómo usarlo de manera segura, pero la versión corta es: es importante utilizar la última versión, establecer safe_mode y establecer enable_attributes=False.

Actualización: safe_mode ahora está en desuso, debido a los problemas de seguridad que conlleva. Ver https://pythonhosted.org/Markdown/reference.html#safe_mode. En su lugar, use un desinfectante de HTML separado, como HTML Purifier.

+0

safe_mode ha quedado en desuso https://pythonhosted.org/Markdown/reference.html#safe_mode –

+0

@RichardJones, ¡gracias por la actualización! He actualizado mi respuesta. –

Cuestiones relacionadas