403 Forbidden es el servidor diciendo: "entendí exactamente lo que pediste, y me niego". Es un error 4xx del cliente, pero es sobre permiso, no un error de tipeo, el recurso existe, simplemente no podés entrar.

403 vs 401: la distinción clave

  • 401 Unauthorized → "¿Quién sos? Autenticate y reintentá." Loguearse puede arreglarlo. Ver 401 Unauthorized.
  • 403 Forbidden → "Sé quién sos (o no importa), y igual no podés." Loguearse casi nunca ayuda.

Causas comunes

CausaQué pasa
Permisos de archivoModo/dueño equivocado en archivo o directorio
Reglas de acceso.htaccess o config del servidor negando acceso
Sin indexListado deshabilitado y sin index.html
Bloqueo de IPTu IP/región está en una lista de denegación
WAF / CloudflareUna regla de seguridad marcó la petición

Cómo arreglarlo, como visitante

  • Revisá la URL; limpiá cookies y caché; apagá VPN/proxy que pueda estar bloqueado; logueate si la página requiere auth.

Cómo arreglarlo, como desarrollador

  1. Permisos: directorios 755, archivos 644; dueño correcto.
  2. Reglas de acceso: revisá .htaccess / bloques location de Nginx.
  3. Index: agregá uno o habilitá listado.
  4. IP y WAF: revisá allowlists y logs por falsos positivos.
  5. Autorización: confirmá que tus checks de rol/scope no rechazan usuarios válidos.

Cuándo importa un spike de 403

Un 403 es un glitch de permisos. Una oleada de 403 puede significar dos cosas distintas: un deploy que rompió tus reglas de acceso y bloquea usuarios reales, o un atacante sondeando recursos. Medí los códigos de estado por endpoint con el monitoreo o los logs que ya uses, así una suba de 403/401 no pasa desapercibida. Ver el checklist de seguridad de APIs. Y para frenar la autorización rota antes de que llegue a producción: el pentester con IA de Nurbak escanea tu repo buscando endpoints sin chequeo de auth y otros bugs explotables, y puede abrir un PR con el fix. Tu primer escaneo es gratis.

Códigos HTTP relacionados