Escape automático y el filtro safe
Manténgase protegido frente a XSS y desactive el escape solo cuando esté seguro.
Escape automático y el filtro safe es una lección gratuita de Flask Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Flask Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flask Academy incluye 4 lecciones en total.
El peligro del HTML sin procesar
Si imprime directamente en una página el texto de un usuario, una entrada maliciosa podría inyectar scripts. Este ataque se llama XSS y Flask ofrece protección contra él.
El autoescape está activado
De forma predeterminada, Jinja2 activa el autoescape para las plantillas HTML. Los caracteres peligrosos se neutralizan antes de llegar al navegador.
Qué hace el escape
El escape convierte caracteres como el signo menor que en entidades seguras. Así, el navegador los muestra como texto y nunca como marcado activo.
<b>hi</b> becomes <b>hi</b>Por qué el texto sigue siendo texto
Como las etiquetas se escapan, un comentario como una etiqueta falsa de negrita aparece como texto plano. La página lo muestra literalmente en lugar de ejecutarlo.
Cuando confía en el HTML
A veces realmente quiere que se procese HTML, por ejemplo, un valor que ha creado usted mismo. Para eso puede desactivar el escape con el filtro safe.
{{ trusted_html|safe }}Cómo funciona safe
El filtro safe indica a Jinja2 que el valor ya es confiable, por lo que no debe escaparlo. Entonces el marcado se procesa como HTML real.
Solo con datos confiables
Use safe únicamente con contenido que usted controle. Marcar como seguro el contenido introducido por un usuario vuelve a abrir la vulnerabilidad XSS que el autoescape estaba cerrando.
Marcar como seguro en Python
También puede marcar HTML confiable en su vista usando Markup. Una cadena Markup omite automáticamente el escape al procesarse.
from markupsafe import Markup
snippet = Markup('<b>Hi</b>')Desactivar el escape localmente
Para omitir el escape en toda una región, envuélvala en un bloque autoescape establecido en false. Úselo rara vez y con mucho cuidado.
{% autoescape false %}{{ html }}{% endautoescape %}El filtro escape
También puede forzar el escape con el filtro escape o con su alias corto e. Resulta útil cuando el autoescape está desactivado para un bloque.
{{ value|e }}Seguro de forma predeterminada
La idea principal es que Flask es seguro desde el primer momento. Solo debe relajar el escape de forma deliberada, nunca por accidente, para mantener protegidos a los usuarios.
Comprobación rápida
Imprime una entrada no confiable de un usuario en una plantilla. ¿Qué hace el autoescape con las etiquetas HTML que contiene?
Resumen
Ha aprendido que Flask aplica autoescape a la salida para bloquear XSS y que el filtro safe solo lo desactiva para HTML en el que confía plenamente. ¡Mantenga la seguridad! 🔒
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Escape automático y el filtro safe» es gratis?
Sí — el texto completo de «Escape automático y el filtro safe» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Flask Academy, actualiza a CoddyKit PRO. El curso de Flask Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Escape automático y el filtro safe»?
Manténgase protegido frente a XSS y desactive el escape solo cuando esté seguro. Practicas Flask Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Flask Academy?
No se requiere experiencia previa. Flask Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Escape automático y el filtro safe»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Flask Academy?
Sí. Cada lección de Flask Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- render_template y la carpeta templates
- Pase datos a una plantilla
- Bucles y condicionales de Jinja2
- Escape automático y el filtro safe