🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAnatomía de una petición y su respuesta
5 tareas · 38 min · Principiante
Todo lo que se audita en una aplicación web pasa, tarde o temprano, por un intercambio de texto: el navegador pide y el servidor responde. Quien no lee ese texto con soltura no puede decir dónde viaja un dato ni qué decidió el servidor. En esta sala se leen cuatro capturas que guardó una revisión autorizada de la tienda de Discos Almagre, una tienda en línea de discos de vinilo: una página del catálogo, el formulario de entrada, una consulta a la API y la misma API vista en HTTP/2. No se envía nada: se lee y se señala.
Objetivo de la sala
Todo lo que se audita en una aplicación web pasa, tarde o temprano, por un intercambio de texto: el navegador pide y el servidor responde. Quien no lee ese texto con soltura no puede decir dónde viaja un dato ni qué decidió el servidor. En esta sala se leen cuatro capturas que guardó una revisión autorizada de la tienda de Discos Almagre, una tienda en línea de discos de vinilo: una página del catálogo, el formulario de entrada, una consulta a la API y la misma API vista en HTTP/2. No se envía nada: se lee y se señala.Una petición HTTP/1.1 es texto con un orden fijo. La primera línea dice qué se pide: el método (GET, POST…), el destino (la ruta y, si hay, la cadena de consulta después de ?) y la versión del protocolo. Después vienen las cabeceras, una por línea con la forma Nombre: valor; en HTTP/1.1 la cabecera Host es obligatoria, porque un mismo servidor atiende muchos nombres y necesita saber a cuál le hablan. Luego una línea vacía y, si el método lo usa, el cuerpo.
La respuesta tiene la misma forma: una línea de estado con la versión, un código de tres cifras y una frase; cabeceras; una línea vacía; el cuerpo. Las cabeceras de la respuesta son instrucciones para el navegador: qué tipo de contenido es, si puede guardarlo en caché, qué cookie debe guardar, a dónde debe ir después. El auditor lee las dos mitades, porque el fallo puede estar en lo que se pidió o en lo que se ordenó.
Responde para continuar
En una petición HTTP/1.1 guardada, ¿qué marca dónde terminan las cabeceras y empieza el cuerpo?
Ver pista de ayuda
Fíjate en peticion-entrar.http, justo antes de la línea con usuario= y clave=.
Cuando el servidor recibe un formulario, no suele devolver una página: responde con un código de la familia 3xx y una cabecera Location, que le dice al navegador a qué dirección ir a continuación. En la misma respuesta puede venir Set-Cookie, que es la orden de guardar un valor y devolverlo en las siguientes peticiones. Leer esa respuesta dice qué consideró el servidor un inicio de sesión correcto y a dónde lleva a la persona.
Abre peticion-entrar.http y lee la respuesta completa, no solo la línea de estado.
Responde para continuar
¿A qué ruta manda el servidor al navegador después de recibir el formulario de entrada? Escríbela tal como aparece en la respuesta.
Ver pista de ayuda
Es la cabecera que lleva una dirección, en la respuesta, no en la petición.
La cadena de consulta (lo que va después de ? en la URL) no es un lugar privado. La URL completa queda escrita en el registro de acceso del servidor y de cualquier proxy intermedio, en el historial del navegador y, según la política de referencia, en la cabecera Referer que se envía a la siguiente página. Por eso un dato que identifica a una persona, o que permite actuar en su nombre, no debería ir en la URL: va en el cuerpo de la petición o se deduce de la sesión en el servidor.
Abre peticion-buscar-pedido.http. Mira la primera línea y separa cada parámetro por el &; el %40 es una arroba codificada.
Responde para continuar
¿Qué parámetro de la URL de la consulta de pedidos lleva un dato que identifica a la clienta? Escribe solo el nombre del parámetro.
Ver pista de ayuda
Hay dos parámetros. Uno es el número del pedido; el otro sirve para escribirle a la persona.
Encontrar el dato en la URL es la mitad del hallazgo; la otra mitad es decir cómo se corrige sin romper la función. La tienda necesita saber de quién es el pedido, y la clienta ya inició sesión: el servidor puede saberlo por la cookie de sesión, sin pedirlo en la dirección. Si de verdad hay que enviarlo (por ejemplo, alguien sin cuenta que consulta su pedido), se envía en el cuerpo de un POST, que no queda en el historial ni en el registro de acceso estándar.
Responde para continuar
¿Qué recomendación cierra el hallazgo de la consulta de pedidos sin quitar la función?
Ver pista de ayuda
HTTPS protege el camino, no lo que el servidor y el navegador escriben al llegar.
En HTTP/2 los mensajes ya no viajan como líneas de texto sino en marcos binarios, y las herramientas del navegador los muestran de otra forma: la línea de petición se convierte en pseudo-cabeceras que empiezan por dos puntos (:method, :scheme, :path y :authority), y la de estado en :status. La pseudo-cabecera :authority cumple el papel que en HTTP/1.1 tiene Host. Los nombres de las cabeceras van en minúsculas. El auditor tiene que reconocer la misma petición en los dos formatos, porque una captura exportada puede venir en cualquiera.
Abre captura-api-h2.txt.
Responde para continuar
En la captura HTTP/2, ¿qué valor lleva la pseudo-cabecera que equivale a Host?
Ver pista de ayuda
Busca la línea que empieza por :authority.
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.