Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Acciones de cambio de estado por GET

5 tareas · 35 min · Principiante

Varios asociados del Fondo Pescadero dicen que su débito automático de ahorro se canceló sin que lo pidieran. Nadie les tomó la cuenta: alguien, o algo, abrió un enlace. En esta sala se leen las rutas del portal, el registro de acceso y la lista de débitos cancelados para entender por qué un GET nunca debe cambiar nada.

0 de 5 · 0%

Objetivo de la sala

Varios asociados del Fondo Pescadero dicen que su débito automático de ahorro se canceló sin que lo pidieran. Nadie les tomó la cuenta: alguien, o algo, abrió un enlace. En esta sala se leen las rutas del portal, el registro de acceso y la lista de débitos cancelados para entender por qué un GET nunca debe cambiar nada.

La semántica de HTTP (RFC 9110) llama seguros a GET, HEAD, OPTIONS y TRACE: quien los envía no pide ningún cambio en el servidor. Todo el ecosistema se apoya en esa promesa. Los navegadores precargan enlaces, las aplicaciones de mensajería abren los que se pegan en un chat para mostrar una vista previa, los filtros de correo los visitan para analizarlos y los buscadores los siguen. Y SameSite=Lax adjunta la cookie a las navegaciones GET que vienen de otro sitio.

Una acción que cambia estado por GET queda expuesta a todos ellos a la vez.

Responde para continuar

¿Por qué un enlace que cancela un débito con un GET es un problema aunque lleve una firma?

Ver pista de ayuda

Piensa en quién más, aparte de la persona, abre los enlaces de un correo o de un chat.

Abre rutas.py y registro-acceso.txt. El enlace de un clic no necesita sesión: basta con seguirlo. Cruza el registro con lo que dijeron los asociados en debitos.txt.

Responde para continuar

¿Qué agente de usuario canceló el débito DB-5521? Escríbelo sin el texto entre paréntesis.

Ver pista de ayuda

La respuesta 200 es la que canceló; la 410 llegó después.

Para el informe hace falta el tamaño del problema. Cuenta los débitos que se cancelaron con una respuesta 200 cuyo agente de usuario no es un navegador manejado por una persona.

Responde para continuar

¿Cuántos débitos cancelaron clientes que no son personas? Escribe solo el número.

Ver pista de ayuda

Hay dos agentes distintos que no son navegadores.

Un patrón frecuente en código heredado: la misma función atiende GET y POST, y lee los datos de donde vengan. Así la versión POST, que pasaría por el token, convive con una versión GET que no lo pide y que Lax deja llegar con la cookie desde otro sitio.

Responde para continuar

¿Qué ruta de rutas.py acepta GET y POST para la misma acción de cambio? Escríbela tal como aparece.

Ver pista de ayuda

Busca una lista de métodos en el decorador.

El enlace de un correo puede seguir existiendo; lo que cambia es lo que hace. El GET muestra una página de confirmación con lo que se va a hacer y un botón; el cambio ocurre solo con el POST de ese botón, que lleva su token. Así una vista previa o un filtro de correo ven la página, pero no la acción.

Responde para continuar

¿Qué corrección propones para /aportes/cancelar-debito?

Ver pista de ayuda

Una lista de agentes de usuario nunca está completa.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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