🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónConsumir APIs de terceros como entrada no confiable
5 tareas · 40 min · Principiante
Una plataforma de servicios casi nunca está sola: geocodifica direcciones con un proveedor, manda mensajes con otro y cobra con un tercero. Lo que esos proveedores devuelven entra a la aplicación por una puerta en la que nadie pone guardia, porque «es un proveedor serio». El 12 de noviembre la app de los repartidores de Domicilios Cuchumbí mostró textos extraños y el servicio de notificaciones se quedó colgado varios minutos. Tienes los dos clientes de proveedores, el contrato de uno de ellos y el registro de integraciones.
Objetivo de la sala
Una plataforma de servicios casi nunca está sola: geocodifica direcciones con un proveedor, manda mensajes con otro y cobra con un tercero. Lo que esos proveedores devuelven entra a la aplicación por una puerta en la que nadie pone guardia, porque «es un proveedor serio». El 12 de noviembre la app de los repartidores de Domicilios Cuchumbí mostró textos extraños y el servicio de notificaciones se quedó colgado varios minutos. Tienes los dos clientes de proveedores, el contrato de uno de ellos y el registro de integraciones.El Top 10 de seguridad de APIs de OWASP, en su edición de 2023, dedica su décimo riesgo al consumo inseguro de APIs: los equipos suelen confiar más en lo que devuelve un tercero que en lo que escribe un usuario, y le aplican controles más flojos. Quien quiera llegar a la aplicación ya no necesita atacarla de frente; le basta con lo que entra por la integración, sea porque el proveedor fue comprometido, porque su dominio cambió de manos o porque alguien se metió en medio de la conexión.
La regla que se desprende es corta: la respuesta de un proveedor es entrada externa. Se recibe por un canal verificado, con tiempo de espera y tamaño máximo, se valida contra lo que el proveedor promete y se codifica al mostrarla, igual que si la hubiera escrito un desconocido.
Responde para continuar
¿Cómo hay que tratar los datos que devuelve la API de un proveedor de confianza?
Ver pista de ayuda
Piensa en qué pasa si el proveedor es el que cae.
Abre el laboratorio y lee cliente_ubicalo.py junto a cliente_textea.py. El segundo sirve de contraste: es lo que el primero debería parecer. Fíjate primero en cómo se abre la conexión. Si el cliente no comprueba el certificado del proveedor, cualquiera que se ponga en medio puede responder en su nombre, y además se lleva la clave de API que viaja en cada pedido.
Responde para continuar
¿Qué argumento, con su valor, apaga la comprobación del certificado del proveedor en el cliente de Ubícalo? Escríbelo tal como aparece en el código.
Ver pista de ayuda
Está en la llamada a requests, con un comentario que da la excusa.
La librería que usa el cliente sigue redirecciones si se lo permiten, y este cliente lo permite. El contrato de Ubícalo dice algo muy concreto sobre redirecciones y sobre su dominio. Lee contrato-ubicalo.txt y busca en integraciones.log a dónde terminó yendo el cliente. Una redirección seguida a ciegas lleva la petición, y lo que la acompaña, a un servidor que nadie evaluó.
Responde para continuar
¿A qué host siguió el cliente de Ubícalo una redirección que el contrato no contempla? Escríbelo tal como aparece.
Ver pista de ayuda
Busca la línea con estado 301.
El contrato fija un tamaño máximo de respuesta, y el cliente no lo comprueba. Recorre integraciones.log y cuenta las respuestas que el cliente de Ubícalo procesó con un tamaño mayor que el del contrato. Las del otro proveedor no cuentan, tampoco la que no llegó a responder, y sí cuenta la que vino del host al que se siguió la redirección, porque también la procesó el cliente de Ubícalo.
Responde para continuar
¿Cuántas respuestas procesadas por el cliente de Ubícalo superaron el tamaño máximo del contrato?
Ver pista de ayuda
Compara cada tamaño con el máximo en bytes del contrato.
tarjeta_entrega.py escapa lo que escribe el cliente final y no escapa lo que viene de Ubícalo, «porque ya viene limpio». El registro muestra una respuesta con etiquetas HTML en un campo que el contrato declara sin marcado, y esa respuesta se procesó. El tiempo de espera ausente explica, de paso, los minutos que notificaciones se quedó colgado esperando una respuesta que nunca llegó.
Responde para continuar
¿Qué corrige el hallazgo de la tarjeta de entrega en su causa?
Ver pista de ayuda
El control tiene que quedar del lado de quien recibe el dato.
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.