HTTP 403 “Prohibido”: causas, prevención y solución

Publicado: 2023-09-01
Tabla de contenido
  • ¿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?

error-403-prohibido

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:

  1. Permisos insuficientes : es posible que el usuario no tenga los permisos necesarios para acceder a un recurso particular en el servidor.
  2. Restricciones geográficas : parte del contenido web puede estar limitado a usuarios de regiones o países específicos.
  3. Bloqueo de IP : los servidores pueden bloquear ciertas direcciones IP debido a problemas de seguridad o actividades sospechosas previas.
  4. Reglas estrictas de .htaccess : las reglas incorrectas o demasiado restrictivas en el archivo .htaccess en los servidores Apache pueden provocar errores 403.
  5. 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:

  1. Revisar URL : asegúrese de que se acceda a la URL correcta y de que no haya errores tipográficos.
  2. Inspeccionar los registros del servidor : los registros del servidor pueden proporcionar información sobre por qué se rechazó una solicitud en particular.
  3. 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:

  1. Revise periódicamente los permisos : verifique y ajuste periódicamente los permisos para garantizar que los usuarios puedan acceder a los recursos necesarios.
  2. Actualice .htaccess con cuidado : cuando modifique el archivo .htaccess, hágalo con precaución y mantenga siempre copias de seguridad.
  3. 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

  1. Haga una copia de seguridad de su archivo .htaccess : haga siempre una copia de seguridad del archivo .htaccess antes de realizar cualquier cambio.
  2. 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.
  3. Protección con contraseña : si ciertos directorios están protegidos con contraseña mediante AuthType , AuthName , AuthUserFile y Require , 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.
  4. 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
    Los permisos incorrectos, especialmente para directorios, pueden provocar errores 403.
  5. Listados de directorios : si está intentando acceder a un directorio que no tiene un archivo de índice (como index.html o index.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
  6. 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.
  7. 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.
  8. 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:

  1. 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 IP 123.123.123.123 y se deniegan todas las demás IP.
  2. 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 Reemplace YOUR.IP.ADDRESS.HERE con la dirección IP que desea incluir en la lista blanca. .
  3. 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
  4. 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 de 123.123.123.0 a 123.123.123.255 .
  5. 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.
  6. 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:

  1. HTTP 401 (no autorizado) : la solicitud requiere autenticación de usuario.
  2. HTTP 402 (pago requerido) : reservado para uso futuro, sugiere que se requiere pago.
  3. 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.