HTTP 403 “Prohibido”: causas, prevención y solución
Publicado: 2023-09-01- ¿Qué es HTTP 403?
- Causas comunes
- Diagnosticar
- Como prevenir
- Como arreglarlo
- Errores relacionados
HTTP 403, significa “Prohibido” e indica que el servidor entiende la solicitud del cliente, pero se niega a cumplirla.
Este artículo tiene como objetivo arrojar luz sobre la esencia de HTTP 403, desentrañar sus causas comunes, guiar su diagnóstico y ofrecer técnicas de prevención y resolución.
También resaltaremos los errores relacionados para brindar una comprensión integral.
¿Qué es HTTP 403?
HTTP 403 es un código de estado que significa "Prohibido". Cuando se encuentra, le dice al cliente que el servidor comprende la solicitud pero se niega a completarla.
A diferencia del estado 401 "No autorizado" , que se relaciona con problemas con la autenticación del usuario, el error 403 indica que la autenticación puede haber sido exitosa, pero el usuario autenticado aún no tiene los permisos necesarios para acceder al recurso solicitado.
Causas comunes
Los errores HTTP 403 pueden surgir por diversas circunstancias:
- Permisos insuficientes : es posible que el usuario no tenga los permisos necesarios para acceder a un recurso particular en el servidor.
- Restricciones geográficas : parte del contenido web puede estar limitado a usuarios de regiones o países específicos.
- Bloqueo de IP : los servidores pueden bloquear ciertas direcciones IP debido a problemas de seguridad o actividades sospechosas previas.
- Reglas estrictas de .htaccess : las reglas incorrectas o demasiado restrictivas en el archivo .htaccess en los servidores Apache pueden provocar errores 403.
- Protocolos de seguridad del servidor : algunos servidores pueden tener protocolos de seguridad que bloquean las solicitudes de ciertos agentes de usuario o navegadores.
Diagnosticar
Para determinar la causa raíz de un error HTTP 403, considere los siguientes pasos:
- Revisar URL : asegúrese de que se acceda a la URL correcta y de que no haya errores tipográficos.
- Inspeccionar los registros del servidor : los registros del servidor pueden proporcionar información sobre por qué se rechazó una solicitud en particular.
- Verifique el archivo .htaccess : para los sitios web que se ejecutan en Apache, revisar el archivo .htaccess puede identificar reglas demasiado restrictivas.
Como prevenir
Evitar errores HTTP 403 implica pasos proactivos para garantizar interacciones fluidas entre el servidor y el cliente:
- Revise periódicamente los permisos : verifique y ajuste periódicamente los permisos para garantizar que los usuarios puedan acceder a los recursos necesarios.
- Actualice .htaccess con cuidado : cuando modifique el archivo .htaccess, hágalo con precaución y mantenga siempre copias de seguridad.
- Supervise la seguridad del servidor : manténgase actualizado sobre los protocolos de seguridad del servidor para evitar bloqueos involuntarios.
Como arreglarlo
Solucionar un error 403 depende de su causa subyacente:
1. Ajustar los permisos
Asegúrese de que se otorguen los permisos correctos a los usuarios o directorios que requieren acceso. (leer más)
2. Solucionar problemas de .htaccess
- Haga una copia de seguridad de su archivo
.htaccess
: haga siempre una copia de seguridad del archivo.htaccess
antes de realizar cualquier cambio. - Verifique las directivas de denegación : busque directivas
Deny
en su archivo.htaccess
. Si están presentes, podrían estar causando el error 403. Por ejemplo:Order allow,deny Deny from all
Para resolver esto, elimine la directiva o modifíquela para permitir el tráfico deseado. - Protección con contraseña : si ciertos directorios están protegidos con contraseña mediante
AuthType
,AuthName
,AuthUserFile
yRequire
, asegúrese de tener las credenciales correctas para acceder a ellos. Si no desea protección con contraseña, puede comentar o eliminar estas directivas. - Permisos de archivos : si bien esta no es estrictamente una solución
.htaccess
, asegúrese de que sus archivos y directorios tengan los permisos correctos. Para muchos servidores, una configuración de permisos típica es:- Carpetas: 755
- Archivos: 644
- Listados de directorios : si está intentando acceder a un directorio que no tiene un archivo de índice (como
index.html
oindex.php
) y los listados de directorios están deshabilitados, es posible que obtenga un error 403. Tu también puedes:- Agregue un archivo de índice al directorio.
- Habilite listados de directorios con:
Options +Indexes
- Reglas Mod_Rewrite : si está utilizando reglas mod_rewrite, asegúrese de que estén escritas correctamente. Las reglas incorrectas a veces pueden provocar errores 403. Comente reglas específicas para ver si son la causa.
- Verifique las restricciones de archivos : busque reglas que restrinjan el acceso según el nombre del archivo, como:
<Files "secretfile.php"> Order allow,deny Deny from all </Files>
Ajuste o elimine estas reglas según sea necesario. - Asegúrese de la sintaxis de .htaccess : un archivo
.htaccess
escrito incorrectamente o uno con directivas no válidas puede causar un error 403. Asegúrese de que todas las directivas y la sintaxis sean correctas.
Después de realizar cambios en el archivo .htaccess
, recuerde borrar la memoria caché de su navegador o probar con un navegador diferente para asegurarse de ver el resultado actualizado. Si ninguna de las soluciones anteriores resuelve el problema, considere restaurar una copia de seguridad del archivo .htaccess
de un momento en el que no experimentaba el error 403.
3. Lista blanca de direcciones IP
Si el bloqueo de IP es el culpable, considere incluir la dirección IP en cuestión en la lista blanca.
Lista blanca con .htaccess:
- Localice las reglas de bloqueo de IP existentes : busque cualquier regla existente en su archivo
.htaccess
que pueda estar bloqueando direcciones IP. Podrían verse así:Order Deny,Allow Deny from all Allow from 123.123.123.123
En este ejemplo, solo se permite la IP123.123.123.123
y se deniegan todas las demás IP. - Incluir una dirección IP en la lista blanca : si desea incluir una dirección IP específica en la lista blanca, puede agregarla usando la directiva
Allow from
:Allow from YOUR.IP.ADDRESS.HERE
ReemplaceYOUR.IP.ADDRESS.HERE
con la dirección IP que desea incluir en la lista blanca. . - Incluir en la lista blanca varias direcciones IP : si tiene varias direcciones IP para incluir en la lista blanca, puede agregar varias directivas
Allow from
:Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
- Incluir en la lista blanca un rango de IP : si tiene un rango de direcciones IP, puede usar notación CIDR o caracteres comodín:
#Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.*
Ambos ejemplos anteriores Incluya en la lista blanca todas las direcciones IP de123.123.123.0
a123.123.123.255
. - Guardar y probar : después de agregar las directivas
Allow from
necesarias, guarde el archivo.htaccess
y luego intente acceder a su sitio web desde la dirección IP previamente bloqueada. Ahora debería ser accesible. - Borrar caché del navegador : borre siempre el caché de su navegador o utilice una ventana privada/de incógnito cuando realice pruebas para asegurarse de que está viendo los cambios más recientes.
Usando iptables
:
i. Copia de seguridad de las reglas actuales de iptables : antes de realizar cualquier cambio, es una buena idea hacer una copia de seguridad de las reglas actuales iptables
.
sudo iptables-save > /path/to/backupfile.txt
ii. Incluya una dirección IP en la lista blanca : para permitir todo el tráfico desde una dirección IP específica:
sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
Reemplace YOUR.IP.ADDRESS.HERE
con la dirección IP que desea incluir en la lista blanca.
III. Guarde los cambios : Dependiendo de su distribución, puede utilizar:
sudo service iptables save
O:
sudo iptables-save > /etc/sysconfig/iptables
Usando ufw
:
i. Verifique si UFW está instalado : si no, puede instalarlo usando el administrador de paquetes de su distribución, por ejemplo:
sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)
ii. Habilitar UFW : si aún no está habilitado, puede activar UFW con:
sudo ufw enable
III. Incluya una dirección IP en la lista blanca : para permitir todo el tráfico desde una dirección IP específica:
sudo ufw allow from YOUR.IP.ADDRESS.HERE
Reemplace YOUR.IP.ADDRESS.HERE
con la dirección IP que desea incluir en la lista blanca.
IV. Verifique las reglas : Puede consultar las reglas de UFW con:
sudo ufw status
4. Busque asistencia de un proveedor de alojamiento : a veces, comunicarse con su proveedor de alojamiento puede ayudar a identificar y rectificar problemas específicos del servidor.
Errores relacionados
Para contextualizar aún más HTTP 403, considere estos códigos de estado HTTP relacionados:
- HTTP 401 (no autorizado) : la solicitud requiere autenticación de usuario.
- HTTP 402 (pago requerido) : reservado para uso futuro, sugiere que se requiere pago.
- HTTP 404 (no encontrado) : el recurso solicitado no está disponible en el servidor.
Para concluir, comprender las complejidades del código de estado HTTP 403 "Prohibido" es vital para garantizar interacciones web óptimas. Al mantenerse informados y proactivos, los desarrolladores y usuarios pueden sortear posibles obstáculos y mantener experiencias web fluidas.
Como uno de los cofundadores de Codeless, aporto experiencia en el desarrollo de WordPress y aplicaciones web, así como un historial en la gestión eficaz de hosting y servidores. Mi pasión por adquirir conocimientos y mi entusiasmo por construir y probar tecnologías novedosas me impulsan a innovar y mejorar constantemente.
Pericia:
Desarrollo web,
Diseño web,
administración del sistema linux,
SEO
Experiencia:
15 años de experiencia en desarrollo web desarrollando y diseñando algunos de los temas de WordPress más populares como Specular, Tower y Folie.
Educación:
Soy Licenciado en Ingeniería Física y MSC en Ciencia de Materiales y Opto Electrónica.
Twitter, Linkedin