🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónCodificación y saneado hacia la interfaz
5 tareas · 40 min · Principiante
El destino más común de una salida es una página web, y el navegador no distingue entre el marcado que escribió el equipo y el que llegó dentro de una respuesta. En esta sala revisas los cinco componentes que muestran la salida de Pabilo en Tizón Seguros: cuál la inserta como texto, cuál como marcado sin control, qué configuración deja pasar HTML y qué fila de una revisión en un navegador de prueba muestra que codificar no siempre basta. Las salidas de ejemplo están descritas, no transcritas; todo es lectura.
Objetivo de la sala
El destino más común de una salida es una página web, y el navegador no distingue entre el marcado que escribió el equipo y el que llegó dentro de una respuesta. En esta sala revisas los cinco componentes que muestran la salida de Pabilo en Tizón Seguros: cuál la inserta como texto, cuál como marcado sin control, qué configuración deja pasar HTML y qué fila de una revisión en un navegador de prueba muestra que codificar no siempre basta. Las salidas de ejemplo están descritas, no transcritas; todo es lectura.Codificar la salida es convertir los caracteres que el navegador trataría como estructura (los signos de menor y mayor, las comillas, el ampersand) en su forma de texto, de modo que se muestren y no se interpreten. Es el control principal contra la inyección de marcado en páginas (la debilidad que el catálogo CWE de MITRE registra como CWE-79), y es el mismo para un texto que escribió un cliente o uno que escribió un modelo.
El detalle importante es que la codificación depende del contexto en el que se inserta el texto: no se codifica igual el cuerpo de un párrafo, el valor de un atributo, una dirección o un fragmento dentro de un script. Por eso la opción más segura casi siempre es insertar la salida como texto (que el propio marco de la interfaz codifique) y no construir marcado a mano. Las guías de OWASP para prevenir la inyección de marcado parten de esa misma idea.
Responde para continuar
¿Qué afirmación sobre codificar la salida antes de mostrarla es correcta?
Ver pista de ayuda
Un mismo carácter es inofensivo en un párrafo y peligroso dentro de un atributo.
Abre el inventario de componentes. Cada fila dice cómo inserta la salida y qué tratamiento le aplica. Hay tres maneras de hacerlo bien: insertar como texto, convertir y pasar por un saneador con lista de lo permitido, o codificar para el contexto exacto. Y hay una manera de hacerlo mal: asignar la salida directamente como contenido HTML del elemento, que le da al texto el mismo poder que al código de la página.
Localiza el componente que inserta la salida como marcado sin ningún tratamiento. Es el que estaba detrás del caso de la sala anterior.
Responde para continuar
¿Qué componente inserta la salida de Pabilo como marcado sin aplicarle ningún tratamiento? Escribe su nombre tal como aparece.
Ver pista de ayuda
Con la terminal, `cat tizon/componentes.txt`. Mira la última columna.
Muchos asistentes responden en Markdown, y convertirlo a HTML es razonable: listas, negritas y tablas se ven mejor. El riesgo está en la configuración del conversor. Casi todos permiten, si se activa, que el Markdown lleve HTML incrustado y que pase tal cual a la página; y casi todos convierten direcciones en enlaces sin mirar el esquema. Si además no hay un saneador después de la conversión, el Markdown se convierte en una vía para meter cualquier marcado.
El saneado es el complemento: una biblioteca que recorre el HTML resultante y deja solo las etiquetas y atributos de una lista de permitidos, quitando todo lo demás. Funciona con lista de permitidos, no de prohibidos, porque lo prohibido nunca está completo. Abre la configuración del conversor del historial y localiza la opción que deja pasar el HTML.
Responde para continuar
¿Qué opción de la configuración del conversor deja pasar a la página el HTML que venga dentro del Markdown? Escribe su nombre.
Ver pista de ayuda
Con la terminal, `cat tizon/configuracion-markdown.txt`.
Codificar un atributo impide que el texto se salga del atributo, pero no comprueba qué hay dentro. Si un campo de la salida termina en el destino de un enlace, un texto bien codificado puede seguir siendo un destino con un esquema distinto de https, y el navegador lo seguirá al pulsarlo. Para las direcciones el control adicional es una lista de esquemas permitidos (normalmente solo https, y a veces solo dominios propios), aplicada antes de construir el enlace.
En la revisión en el navegador de prueba hay una fila donde el componente sí codificaba, y aun así el resultado no era el esperado. Localízala.
Responde para continuar
¿En qué fila de la revisión la codificación del atributo no detuvo un destino con un esquema no permitido? Escribe su identificador.
Ver pista de ayuda
Con la terminal, `cat tizon/revision-de-render.txt`. Busca el componente que pone la salida en el destino de un enlace.
Con el inventario, la configuración y la revisión a la vista, la recomendación tiene varias piezas que se suman. La primera, insertar la salida como texto siempre que no haga falta formato. Donde sí haga falta, convertir y sanear con lista de permitidos, sin HTML crudo. En los enlaces, validar el esquema. Y como segunda capa, una política de seguridad de contenido en el navegador que limite de dónde se cargan scripts e imágenes, para que un fallo en la primera capa no tenga efecto. Ninguna de ellas pasa por pedirle al modelo que se porte bien.
Responde para continuar
¿Qué recomendación cierra lo que encontraste en los componentes de Tizón?
Ver pista de ayuda
La defensa vive en el código que muestra la salida, en capas.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.