¿Existe una buena biblioteca de python mantenida activamente disponible para filtrar entradas maliciosas como XSS?Biblioteca Python para el filtrado XSS?
Respuesta
La biblioteca Strip-o-Gram se ve bastante bien. No lo he comprobado correctamente, pero parece que hace las cosas bien (es decir, puede incluir en la lista blanca las etiquetas HTML que especifique, así como HTML, escapando cualquier cosa desagradable).
He aquí el fragmento de ejemplo de uso, citado de esa página:
from stripogram import html2text, html2safehtml
mylumpofdodgyhtml # a lump of dodgy html ;-)
# Only allow <b>, <a>, <i>, <br>, and <p> tags
mylumpofcoolcleancollectedhtml = html2safehtml(mylumpofdodgyhtml,valid_tags=("b", "a", "i", "br", "p"))
# Don't process <img> tags, just strip them out. Use an indent of 4 spaces
# and a page that's 80 characters wide.
mylumpoftext = html2text(mylumpofcoolcleancollectedhtml,ignore_tags=("img",),indent_width=4,page_width=80)
Espero que ayude.
No puedes confiar en que los atacantes pongan buenas etiquetas. A menos que strip-o-gram funcione en etiquetas fuertemente codificadas (ver la lista de rsnake: http://ha.ckers.org/xss.html) esto no funcionará. – Mystic
Lo mismo dijo Mystic. Parece que Strip-o-gram (chico suena como algo que podrías ordenar para animar a un amigo solitario) no se describe como una defensa contra XSS. –
Puede codificar fácilmente XSS-defense en Python, consulte por ejemplo http://code.activestate.com/recipes/496942/ para obtener un código de uso instructivo y útil.
Si está utilizando un framework web y un motor de plantillas como Jinja2, existe la posibilidad de que el motor de plantillas o el framework tenga algo incorporado solo para eso.
Hay algo en el módulo de CGI que puede ayudarle a:
cgi.escape('malicious code here')
, ver: http://docs.python.org/library/cgi.html#cgi.escape
también Jinja2 proporciona escapar:
from jinja2 import utils
str(utils.escape('malicious code here'))
Comenzando con Python 3.4+, ¡hay 'html.escape' en stdlib! –
- 1. Función de filtrado XSS en PHP
- 2. Biblioteca de filtrado de spam bayesiano para Python
- 3. Codeigniter - Deshabilitar el filtrado XSS en una base de publicación
- 4. Filtrado de pantalla con Python
- 5. Uso de la biblioteca MS Anti XSS para desinfectar HTML
- 6. <%: %> vs Microsoft la biblioteca anti XSS
- 7. Biblioteca como fakeweb para Python
- 8. Biblioteca financiera básica para Python
- 9. HTML-Entidad de escape para evitar XSS
- 10. Filtrado y transformación de listas de Python
- 11. Librerías java Anti-XSS
- 12. Python: listas de filtrado por índices
- 13. AutoCompleteTextView - deshabilitar el filtrado
- 14. PHP Markdown XSS Sanitizer
- 15. prevención de XSS en PHP
- 16. Biblioteca cliente Python Jabber/XMPP para Twisted
- 17. Buena biblioteca de Python para AMQP
- 18. Biblioteca de MS Access para python
- 19. biblioteca de python para dividir video
- 20. Biblioteca de red neuronal para Python?
- 21. Biblioteca de Python para modificar el audio MP3 sin transcodificar
- 22. Biblioteca MIDI simple, multiplataforma para Python
- 23. Biblioteca de API de Amazon para Python?
- 24. Biblioteca de Python para generar archivos flash
- 25. Biblioteca de Python para Amazon MWS
- 26. Biblioteca de Python para monitoreo/proc/diskstats?
- 27. ¿Biblioteca de Git para Ruby o Python?
- 28. Biblioteca de cliente Python para WebDAV
- 29. python: biblioteca para árboles de sufijo generalizados
- 30. Biblioteca de imágenes para Python 3
bien cualquier cosa que elimina las etiquetas HTML va a hacer eso. ¿Tenía requisitos especiales para las cosas que quiere mantener? – SpliFF
Simplemente me gustaría señalar que el comentario anterior es muy ingenuo, si lees eso, considera también leer: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet como inicio. – mkoistinen