Me gustaría permitir a los usuarios que dejen comentarios de texto enriquecido, posiblemente usando el marcado. He instalado las bibliotecas usadas 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 seguir preocupado por la seguridad de los comentarios? ¿Hay una cadena de prueba que pueda poner en mi sistema para verificar los mismos defectos que quitaron Reddit?Secure Python Markdown Library
Respuesta
Python-Markdown - el "estándar" uno más o menos - tiene una función de 'modo seguro' que escapa a las etiquetas html. Eso debería ser suficiente para contrarrestar la mayoría de los ataques de inyección HTML.
reddit usa el discount markdown library ahora.
Las otras respuestas mencionan el modo seguro de Python-Markdown pero ahora está en desuso. Los autores de Python-de rebajas han sido citado diciendo:
"modo seguro" era una mala elección nombre que seguimos utilizando para atrás comparabilidad (Código de edad todavía trabaja con nuestras versiones más recientes). Lo que realmente es es un modo sin marcas. En otras palabras, es solo una manera de rechazar el html crudo y realmente no garantiza la seguridad.
Ahora recomiendan utilizar un sanitizador HTML como Bleach para desinfectar la salida de reducción. mdx_bleach es una extensión Python-Markdown que hace precisamente eso. Descargo de responsabilidad: soy el autor de esta extensión.
Dado que utiliza html5lib para analizar fragmentos de documentos de la misma manera que lo hacen los navegadores, Bleach es extremadamente resistente a los ataques desconocidos, mucho más que los desinfectantes basados en expresiones regulares.
- 1. Secure Python intepreter?
- 2. Python Markdown: Markdown dentro de bloques HTML
- 3. Github-Flavoured-Markdown en Python
- 4. Python Music Library?
- 5. python-nose: assertion library?
- 6. pcap python library?
- 7. ¿Es python-markdown seguro en una entrada que no es de confianza?
- 8. Python server side AJAX library?
- 9. Python Core Library y PEP8
- 10. PHP secure root
- 11. Android Secure Storage
- 12. Secure DSA Signing
- 13. servlet set cookie secure?
- 14. html5 video secure streaming?
- 15. Java secure session
- 16. Python Imaging Library show() en Windows
- 17. C++ Nombre Mangling Library para Python
- 18. XML library similar a simplejson/json? - Python
- 19. Secure File Delete en C
- 20. Secure ConnectionString en aplicaciones WinForm
- 21. es 1024 bit rsa secure
- 22. Homebrew Python y escribir en /Library/Python/2.7/site-packages/?
- 23. Markdown o HTML
- 24. JQuery/JS Markdown plugin?
- 25. Vim Markdown ¿Plegable?
- 26. Sanitize Markdown in Rails?
- 27. LHS y Markdown: Codeblocks
- 28. Live preview markdown editor
- 29. ¿Cómo validar Markdown?
- 30. PHP Markdown XSS Sanitizer
Estoy trabajando en un entorno python puro (motor de la aplicación google) así que no creo que pueda usar una biblioteca C. Estoy mirando el Scavenger de la biblioteca mencionado anteriormente, y también estoy mirando el código filters.py y markdown.py de reddit. La biblioteca freewisdom está * destinada * a ser lanzada en otro proyecto, mientras que obviamente usted tenía la intención de que el código reddit funcionara en reddit, por lo que me inclina hacia el código de libre navegación. Por otro lado, tengo curiosidad acerca de por qué tenía que escribir su propio código de filtro en primer lugar. ¿Hay vulnerabilidades en las bibliotecas de acceso público de las que debería tener conocimiento? – MichaelBlume