Repaso
English
Backend y APIsBaseAPI-03

Un usuario con sesión iniciada pide la factura de otro cliente (tenant). ¿Qué código de estado es el más apropiado?

Opciones

  1. 401 Unauthorized, porque el usuario no tiene permiso
  2. 403 Forbidden (o 404, para ocultar que existe) (Opción correcta)
  3. 400 Bad Request, porque el id no es válido
  4. 500 Internal Server Error, porque falló el acceso

Respuesta

403 Forbidden (o 404 para ocultar que existe)

Por qué

401 significa 'no sé quién eres': faltan credenciales o no son válidas (pese a su nombre 'Unauthorized').

403 significa 'sé quién eres, pero no tienes permiso para esto'.

El usuario tiene sesión iniciada pero la factura no es suya, así que 403. Muchas APIs responden 404, para que un atacante ni siquiera sepa que la factura existe.

Recuerda

401 = ¿quién eres? 403 = no puedes hacer eso.

Términos clave

Practica esta pregunta en Repaso