Solucionar error 403 en la Web en tiempo de ejecución
Uno de los errores más comunes que saltan cuando se visitan páginas web es el «error 403 Prohibido». Las causas pueden ser muy diversas. Entre las posibles encontramos:
- Falta de una página por defecto en el sitio web
- Plugin defectuoso en CMS (ej. WordPress, Joomla!, PrestaShop)
- Infección Malware
- Permiso erróneo en archivos
- Bloqueo de ejecución en Servidor en tiempo de ejecución (denegación de acceso a un recurso)
En este artículo vamos a contemplar el último caso que se produce cuando realizamos una acción en nuestra web, por ej. actualizando un plugin, y el navegador nos devuelve el error 403:
Este «error 403 Prohibido – El acceso a este servidor ha sido denegado» (Forbidden – Access to this resource on the server is denied!) puede ser generado por el servidor web al encontrar una ejecución de código sospechosa.
Existe un componente en los servidores Apache o LiteSpeed llamado ModSecurity, que comprueba la ejecución de código y verifica contra una colección de reglas si es un ataque o un código inofensivo.
Si el código se marca como sospechoso el servidor, como medida de prevención, anula la ejecución del código y devuelve este error 403.
Por ello, si somos nosotros los que estamos ejecutando el código, y confiamos que es correcto, estaremos en un escenario de falso positivo por lo que tendremos 2 opciones:
- Ponernos en contacto con nuestro proveedor de hosting para que verifique el error en ModSecurity y ponga en lista blanca el ID generado por nuestro código.
- Desactivar temporalmente ModSecurity
En este segundo caso se puede realizar de manera sencilla desde cPanel. De dejamos el siguiente video explicativo: