🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAcciones 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.
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.
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.