Error 403 Forbidden: qué significa y cómo solucionarlo
RESPUESTA DIRECTA
Una respuesta HTTP 403 Forbidden significa que el servidor entendió la solicitud, pero se niega a autorizar el acceso al recurso solicitado. La solicitud puede estar bloqueada por permisos de la cuenta, autorización de la aplicación, permisos de archivos, reglas del servidor web, una CDN, un WAF o una política de red. Verifica primero la URL y la cuenta; los administradores del sitio deben identificar qué capa devolvió el 403 antes de cambiar los controles de acceso.
Puntos clave
- Un 403 es una denegación de autorización HTTP, no suele ser un fallo de DNS ni de conectividad.
- El problema puede afectar a una URL, cuenta, operación de API, dirección IP, red o al sitio completo.
- Un inicio de sesión o token de API válidos no garantizan permiso para acceder a todos los recursos.
- Los visitantes deben verificar la URL, iniciar sesión cuando sea necesario y contactar con el propietario del sitio si deberían tener acceso.
- Los administradores deben determinar si la respuesta la generó la aplicación, el servidor web, el proxy, la CDN o el WAF.
- No establezcas permisos de escritura globales para los archivos ni desactives los controles de seguridad simplemente para eliminar un 403.
Site Administrator
Qué significa este error y cómo reconocerlo
- Un navegador muestra
403 Forbidden,Access Deniedo una página de denegación personalizada. - Un cliente de API recibe HTTP 403 aunque haya proporcionado credenciales.
- El DNS y TLS pueden funcionar con normalidad porque la solicitud llegó a un servidor HTTP o intermediario.
- Solo pueden verse afectados una ruta, archivo, cuenta, dirección IP, método HTTP o red.
- Una respuesta de una CDN o WAF puede incluir headers específicos del proveedor, un identificador de solicitud o una página de desafío o denegación de seguridad.
- El error puede comenzar después de un despliegue, un cambio de permisos, una actualización de reglas de reescritura, un cambio del firewall o una actualización de la política del WAF.
Causas principales, ordenadas por probabilidad
Entre las causas probables, ordenadas de más comunes a menos comunes, se incluyen:
- Falta de autorización: El recurso requiere un usuario con sesión iniciada, un rol específico, ser el propietario, una suscripción o un scope del token de API determinados.
- Filtrado de la CDN o el WAF: Una política de seguridad puede bloquear la IP del cliente, el patrón de solicitud, el país, el user agent, la frecuencia o la URL.
- Reglas de acceso del servidor web: La configuración de Apache o Nginx puede denegar una ruta mediante reglas
allow/deny, de ubicación, reescritura, directorio o archivo de índice. - Problemas de acceso a archivos o directorios: Una propiedad o unos permisos incorrectos pueden impedir que el proceso del servidor web atraviese directorios o lea un recurso.
- Lógica de autorización de la aplicación: La aplicación puede devolver deliberadamente un 403 para un usuario, objeto, operación o estado de cuenta.
- Restricciones de red o hotlinking: Las listas de IP permitidas, las comprobaciones del referer u otras políticas de acceso pueden rechazar una solicitud que, por lo demás, es válida.
Un 403 puede ser intencionado. Confirma que el recurso debería estar disponible para el usuario o cliente afectado antes de cambiar la configuración.
Cómo solucionarlo
Si eres visitante
- Verifica la dirección exacta. Comprueba el hostname, la ruta, la ortografía, la query string y las mayúsculas y minúsculas. Elimina los cambios accidentales de la URL y vuelve a intentar acceder a la página prevista.
- Inicia sesión si es necesario. Si el recurso pertenece a una cuenta o suscripción, autentícate y confirma que la cuenta tiene el rol o plan necesarios.
- Prueba con una red adecuada. Si el sitio puede restringir VPN, proxies, redes corporativas o direcciones IP, vuelve a intentarlo desde una red aprobada. No intentes eludir una política de acceso sin permiso.
- Evita los reintentos automatizados repetidos. Las solicitudes repetidas pueden activar reglas de frecuencia o seguridad y dificultar el diagnóstico.
- Contacta con el propietario del sitio cuando el acceso debería ser público. Incluye la URL exacta, la hora aproximada, la cuenta o red afectada y cualquier identificador de solicitud que aparezca en la página de error. No envíes contraseñas, cookies de sesión ni secretos de API.
Si administras el sitio o la API
- Reproduce y registra la solicitud. Anota la URL exacta, el método HTTP, la zona horaria, la IP del cliente cuando corresponda, el contexto de autenticación, el estado, los headers de respuesta y cualquier request ID o Ray ID. Elimina los secretos antes de compartir los logs.
- Identifica la capa que responde. Determina si la respuesta procede de la aplicación, el servidor web, el reverse proxy, la CDN o el WAF. Las páginas de denegación personalizadas y los headers específicos del proveedor pueden dar pistas, pero confirma el origen en los logs.
- Comprueba la autenticación y la autorización. Verifica que la cuenta, el rol, el token de API, el scope de OAuth, la propiedad del recurso y la operación solicitada estén permitidos. Una credencial válida demuestra autenticación, no autorización para todos los recursos.
- Inspecciona los eventos de la CDN y el WAF. Relaciona la solicitud con el evento y la regla de seguridad pertinentes. Si la solicitud es legítima, prefiere una excepción limitada y autenticada; no desactives la protección globalmente.
- Revisa las reglas del servidor web. Examina la configuración de virtual hosts, ubicaciones, directorios,
allow/deny, reescrituras y archivos de índice de Apache o Nginx. Compárala con la última configuración que funcionaba. - Comprueba la propiedad y los permisos. Confirma que el proceso del servidor web puede atravesar los directorios necesarios y leer el archivo de destino. Mantén el principio de mínimo privilegio y no cambies los archivos a permisos de escritura globales.
- Revisa el comportamiento de la aplicación. Comprueba la autorización por ruta, la propiedad de los objetos, el middleware de control de acceso y los cambios recientes de código o configuración. Corrige un 403 deliberado de la aplicación en la política de autorización, en lugar de debilitar el servidor web.
- Vuelve a probar de forma limitada. Después de aplicar una corrección mínima y autorizada, prueba la URL y el método exactos desde el contexto afectado. Confirma que las rutas privadas no relacionadas sigan protegidas y supervisa los logs para detectar nuevas denegaciones.
Prevención y cómo verificar la solución
- Documenta qué rutas son públicas, requieren autenticación, están restringidas por rol o se deniegan intencionadamente.
- Aplica roles de aplicación y permisos de archivos basados en el mínimo privilegio; evita archivos y directorios con escritura global.
- Limita las reglas de CDN, WAF, IP, hotlinking y servidor a la ruta o audiencia más pequeña necesaria.
- Prueba los cambios de reglas de seguridad y del servidor web en un entorno controlado antes de desplegarlos ampliamente.
- Supervisa las tasas de 401 y 403 por ruta y correlaciona los picos con versiones, cambios de configuración y eventos de seguridad.
- Mantén la configuración versionada y una ruta de rollback probada para los cambios de control de acceso.
- Registra el propietario esperado de cada capa de denegación para poder dirigir rápidamente los incidentes.
Cuándo pedir ayuda externa
Escala el caso al administrador del sitio, hosting, CDN/WAF o aplicación cuando un recurso que debería ser público siga bloqueado, la capa que deniega no esté clara o un cambio de permisos pudiera exponer datos privados. Involucra al equipo de seguridad cuando esté implicada una regla del WAF, una restricción de IP o un pico sospechoso de denegaciones. Proporciona la URL y el método exactos, la marca de tiempo con zona horaria, el estado y los headers de respuesta, el identificador de solicitud, el contexto de la red o cuenta afectada y las entradas de log relevantes, con los datos sensibles eliminados. Nunca compartas contraseñas, cookies de sesión, tokens privados ni secretos de API.
Preguntas frecuentes
¿Un 403 es lo mismo que un 401?
No. Un 401 generalmente indica que se requiere autenticación o que esta no se realizó correctamente. Un 403 indica que el servidor rechaza el acceso solicitado; el cliente puede estar autenticado y aun así no tener permiso.
¿Un 403 significa que el sitio web está caído?
No necesariamente. Un 403 significa que un servidor HTTP o intermediario respondió. La denegación puede afectar solo a una ruta, cuenta, red, método o nivel de permisos, mientras el resto del sitio funciona.
¿Los permisos de archivos pueden causar un 403?
Sí. Una propiedad incorrecta, permisos insuficientes para recorrer directorios o permisos de lectura del archivo pueden hacer que un servidor web deniegue el acceso. Son solo una causa posible, por lo que debes revisar los logs e identificar la capa que responde antes de cambiar los permisos.
¿Una CDN o un WAF pueden devolver un 403?
Sí. Una CDN o un WAF pueden denegar una solicitud en función de reglas de seguridad, la reputación de la IP, la frecuencia, el patrón de la solicitud, la geografía u otra política. Inspecciona el evento de seguridad correspondiente antes de crear una excepción o desactivar la protección.
¿Debo establecer los archivos en 777 para solucionar un 403?
No. Los permisos de escritura global pueden exponer los archivos del sitio o permitir su modificación, y no solucionan las causas relacionadas con la autorización, el WAF o las reglas del servidor. Usa la propiedad y los permisos mínimos que necesiten la aplicación y el servidor web.
¿Por qué una API devuelve 403 si mi token es válido?
Un token válido demuestra autenticación, no permiso para todos los endpoints u operaciones. Comprueba los scopes del token, el rol de la cuenta, la propiedad del recurso, el método HTTP y cualquier regla de API gateway o WAF que afecte a la solicitud.
Documentación adicional
- MDN Web Docs — HTTP 403 Forbidden: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403
- RFC 9110 — HTTP Semantics: https://www.rfc-editor.org/rfc/rfc9110
Para solucionar problemas específicos de la implementación, consulta la documentación del servidor web, framework de la aplicación, CDN/WAF, proveedor de identidad o API gateway implicado en la respuesta. Utiliza las indicaciones del producto sobre control de acceso, logging y eventos de seguridad para identificar la capa que emitió el 403.