Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

APIs de socios y cuotas

5 tareas · 36 min · Principiante

Para que una tienda en línea muestre dónde va su pedido, o para que una bodega consulte su inventario, las empresas de transporte publican una API: una puerta de entrada para que los programas de sus socios pidan datos sin pasar por una persona. Esa puerta se protege con una llave por cliente, un alcance (qué puede hacer cada llave) y una cuota (cuántas solicitudes por minuto). En Mensajería Ceiba lees el registro de la API y el uso por minuto, y buscas tres cosas que fallan con frecuencia: un cliente que ve datos de otro, una cuota que existe en el papel pero no se aplica y una llave que nadie usa y nadie retiró. Todo es lectura de un registro de ejemplo.

0 de 5 · 0%

Objetivo de la sala

Para que una tienda en línea muestre dónde va su pedido, o para que una bodega consulte su inventario, las empresas de transporte publican una API: una puerta de entrada para que los programas de sus socios pidan datos sin pasar por una persona. Esa puerta se protege con una llave por cliente, un alcance (qué puede hacer cada llave) y una cuota (cuántas solicitudes por minuto). En Mensajería Ceiba lees el registro de la API y el uso por minuto, y buscas tres cosas que fallan con frecuencia: un cliente que ve datos de otro, una cuota que existe en el papel pero no se aplica y una llave que nadie usa y nadie retiró. Todo es lectura de un registro de ejemplo.

Una API de socios identifica a cada cliente con una llave. Eso resuelve una pregunta (quién llama), pero no las otras dos: qué puede hacer y cuánto puede pedir. El alcance limita las operaciones (solo lectura, o lectura y escritura) y la cuota limita el ritmo. La cuota protege tres cosas a la vez: que un cliente con un error de programación no tumbe el servicio para los demás, que alguien no extraiga todo el catálogo de envíos a base de repetir llamadas y que el costo de la infraestructura no se dispare.

El marco OWASP API Security Top 10, en su edición de 2023, recoge el problema de la cuota como «Unrestricted Resource Consumption» (API4:2023) y el de ver datos ajenos como «Broken Object Level Authorization» (API1:2023). Son nombres para dos preguntas que se hacen al leer un registro: ¿se limita el consumo? y ¿se comprueba que el objeto pedido pertenece a quien lo pide?

Responde para continuar

¿Qué riesgo cubre principalmente la cuota de solicitudes por minuto de una llave?

Ver pista de ayuda

La cuota habla de ritmo y volumen, no de quién es la llave ni de qué operaciones permite.

El registro de la API tiene dos columnas que hay que mirar juntas: «cliente» (quién llamó) y «dueno_del_objeto» (a quién pertenece el envío que se consultó). Si son distintas y la API respondió 200, la API entregó datos de un cliente a otro. Un 403 en la misma situación es lo contrario: la API hizo bien su trabajo y rechazó la petición, y eso es lo que se espera.

Responde para continuar

¿Qué cliente consultó envíos de otro cliente y recibió respuesta exitosa? Escribe su identificador.

Ver pista de ayuda

Ejecuta `SELECT cliente, count(*) AS accesos FROM registro_api WHERE cliente <> dueno_del_objeto AND codigo = '200' GROUP BY cliente`.

Una cuota solo existe si la pasarela bloquea lo que la excede. La tabla uso_por_minuto trae, para cada cliente y cada minuto, la cuota, las solicitudes recibidas y las bloqueadas. Si las solicitudes superan la cuota y el número de bloqueadas es cero, la cuota no se aplicó. Fíjate también en el caso contrario: un cliente que superó su cuota y tiene bloqueadas es un control funcionando, no un hallazgo.

Responde para continuar

¿Qué cliente superó su cuota por minuto sin que se bloqueara ninguna solicitud? Escribe su identificador.

Ver pista de ayuda

Ejecuta `SELECT cliente, minuto, solicitudes, cuota_por_minuto, bloqueadas FROM uso_por_minuto WHERE solicitudes > cuota_por_minuto AND bloqueadas = 0`.

Medir el exceso sirve para decidir la urgencia: unas pocas solicitudes por encima de la cuota es ruido; varias veces la cuota sin ningún bloqueo es una señal de que el límite no existe o de que alguien está extrayendo datos. En esa misma consulta ya tienes las dos cifras que necesitas. Resta la cuota de las solicitudes de ese minuto.

Responde para continuar

¿Cuántas solicitudes por encima de su cuota hizo ese cliente en ese minuto? Escribe solo el número.

Ver pista de ayuda

Usa la misma consulta de la tarea anterior y calcula solicitudes menos cuota_por_minuto.

Cada llave activa es una puerta. Una que lleva semanas sin usarse suele ser de una integración que se abandonó, de un socio con el que ya no se trabaja o de una prueba que se quedó, y nadie la vigila porque no genera tráfico: si alguien la roba, nadie nota la diferencia. La práctica es sencilla: fijar un plazo sin uso (aquí, treinta días a la fecha del informe, el 7 de octubre de 2026), preguntar al socio si la necesita y revocarla si no responde.

Responde para continuar

¿Qué cliente tiene una llave que lleva más de treinta días sin usarse? Escribe su identificador.

Ver pista de ayuda

Ejecuta `SELECT cliente, ultimo_uso FROM clientes_api WHERE ultimo_uso < '2026-09-07'`.

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