HTTP 403 Forbidden

Acceso denegado: el servidor entendió la solicitud y deliberadamente se niega a cumplirla.

Qué significa HTTP 403

HTTP 403 Forbidden significa que el servidor sabe lo que pediste y se niega. A diferencia de 401, autenticarse (de nuevo) no ayudará — el rechazo trata sobre permisos o política, no sobre identidad.

Las razones van desde permisos del sistema de archivos en el servidor, hasta bloqueos geográficos/de IP, hasta un firewall de aplicaciones web que decide que la solicitud parece maliciosa. Algunos sitios también devuelven 403 en lugar de 404 para ocultar si un recurso existe.

Causas comunes de los errores 403

  • Permisos insuficientes: la cuenta carece del rol o el archivo carece de permisos de lectura (chmod/propietario en el servidor).
  • Dirección IP, país o user-agent bloqueado por el servidor, CDN o regla de WAF.
  • Se solicitó listado de directorio donde autoindex está deshabilitado (no hay index.html en la carpeta).
  • Protección contra hotlinking que rechaza solicitudes con un Referer externo.
  • Falló un desafío de Cloudflare u otro WAF — el tráfico automatizado a menudo ve un 403 aquí.

Cómo solucionarlo como usuario

  • Verifica que hayas iniciado sesión en una cuenta que realmente tiene acceso.
  • Intenta sin una VPN o proxy — tu IP de salida puede estar bloqueada.
  • Si eres el propietario del contenido, revisa los permisos de archivo y las reglas de .htaccess/WAF en lugar de reintentar.

Cómo solucionarlo como desarrollador

  • Revisa la propiedad y los permisos de archivo (por ejemplo, 644 para archivos / 755 para directorios en servidores web típicos).
  • Revisa las reglas de denegación: .htaccess, directivas deny de nginx, plugins de seguridad, reglas gestionadas de WAF.
  • Asegúrate de que exista un documento índice o habilita/deshabilita explícitamente el listado de directorio según lo previsto.
  • Para las APIs, devuelve 403 con una razón legible por máquina para que los clientes puedan distinguir la política del fallo de autenticación.

Ejemplo de respuesta

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error":"forbidden","reason":"account lacks role: admin"}

Preguntas frecuentes

¿Cuál es la diferencia entre 403 y 401?

401 te pide que te autentiques; 403 dice que autenticarse no cambiará la respuesta — simplemente no tienes permiso.

¿Por qué un bot o script recibe 403 mientras que un navegador funciona?

Una capa de WAF o protección contra bots está filtrando tráfico que no proviene de un navegador. Identifícate correctamente o usa la API oficial del sitio.

¿Se puede devolver 403 en lugar de 404?

Sí — algunos servidores ocultan la existencia de recursos respondiendo 403 (o 404) de forma uniforme para cualquier cosa no autorizada.