Solución a errores comunes de seguridad en WordPress (permisos, archivos, etc.)
¡Hola! Si estás leyendo esto, probablemente es porque has tenido algún susto con tu página web, o simplemente quieres evitar que un dolor de cabeza te quite el sueño. Tener un sitio en WordPress es genial, pero también implica una gran responsabilidad: la seguridad. No te preocupes, no necesitas ser un experto en informática para blindar tu web. En esta guía extensa y muy práctica, vamos a desmontar, uno a uno, los errores seguridad más comunes que vemos a diario en el soporte técnico, y te daré la solución paso a paso para que duermas tranquilo.
Vamos a centrarnos en tres pilares fundamentales: los permisos de archivos (que suenan a chino pero son fáciles de entender), los archivos críticos que debes vigilar y las vulnerabilidades más explotadas por los atacantes.
Entendiendo los Permisos de Archivos en WordPress (El ABC)
Antes de solucionar, hay que entender el problema. Imagina que tu hosting es un edificio de oficinas. Cada archivo y carpeta de tu WordPress es una sala o un documento dentro de ese edificio. Los permisos son las llaves que deciden quién puede entrar, quién puede leer, quién puede escribir y quién puede ejecutar órdenes dentro de esa sala.
En el mundo de Linux (donde se alojan casi todas las webs), esto se representa con números. Verás cosas como 644 o 755. No te asustes, es más simple de lo que parece.
Cada número tiene un significado:
- 4 (Lectura): Puedes ver el archivo.
- 2 (Escritura): Puedes modificar el archivo.
- 1 (Ejecución): Puedes "ejecutar" el archivo (necesario para scripts PHP).
El número total es la suma de estos valores. Por ejemplo, el 7 es 4+2+1 (permiso total). El 5 es 4+1 (leer y ejecutar, pero no escribir). El 6 es 4+2 (leer y escribir).
Los tres dígitos representan a tres grupos de usuarios:
- El propietario (tú o tu usuario FTP).
- El grupo (usuarios del servidor).
- El mundo (el resto del mundo, incluidos los visitantes).
### El Error Clásico: Permisos 777 (El "Todo el mundo" Inseguro)
El error de seguridad más común y peligroso que vemos es tener archivos o carpetas con permiso 777. Esto significa que absolutamente cualquiera (el mundo entero) puede leer, escribir y ejecutar tus archivos. Es como dejar la puerta de tu casa abierta de par en par con un cartel de "Pase usted y coja lo que quiera".
Solución Paso a Paso:
Si ves que tus carpetas tienen 777, es una emergencia. Debes cambiarlos ya.
- Accede a tu panel de control de hosting (cPanel, Syspanel, etc.) o a tu cliente FTP (FileZilla).
- Conecta a tu servidor y navega hasta la carpeta raíz de tu WordPress (normalmente
public_html). - Selecciona todas las carpetas de tu instalación (wp-admin, wp-content, wp-includes, etc.).
- Haz clic derecho y selecciona "Permisos de archivo" o "Atributos".
- Verás una ventana con números. Para carpetas, el valor seguro es
755. Escríbelo o marca las casillas correspondientes (Propietario: Leer, Escribir, Ejecutar; Grupo: Leer, Ejecutar; Mundo: Leer, Ejecutar). - Aplica el cambio. Es posible que te pregunte si quieres aplicar a subcarpetas. Acepta.
Para los archivos dentro de esas carpetas, el permiso estándar y seguro es 644.
- Selecciona todos los archivos dentro de
public_html. - Haz clic derecho -> Permisos.
- Introduce
644(Propietario: Leer, Escribir; Grupo: Leer; Mundo: Leer). - Aplica.
[WARNING]
NUNCA establezcas permisos777en archivos o carpetas. Si un plugin o tutorial te lo pide, busca una alternativa. Solo se usa en casos muy extremos y temporales, y es la puerta de entrada número uno para malware y hackeos.
Permisos Correctos Recomendados (La Regla de Oro)
Para que no te líes, esta es la tabla que usamos en soporte:
- Carpetas (Directorios):
755. Permite al servidor leer y entrar, pero solo tú puedes escribir. - Archivos (PHP, JS, CSS, imágenes):
644. Permite leer a todos, pero solo tú puedes escribir. - Archivo
wp-config.php: Este es el archivo más importante de tu WordPress (contiene las claves de la base de datos). Es recomendable subir su seguridad a600(solo tú puedes leer y escribir) o640si tu servidor lo permite. Esto impide que otros usuarios del servidor lo lean.
[TIP]
Si no sabes cómo cambiar los permisos desde tu panel, puedes usar el Administrador de Archivos de tu hosting. Es una herramienta gráfica que suele tener un botón para "Permisos" o "Cambiar permisos". Busca en la barra superior.
Archivos Críticos y Sus Vulnerabilidades Comunes
Más allá de los permisos globales, hay archivos específicos que son el blanco favorito de los atacantes. Vamos a ver cómo solucionar los problemas más típicos con ellos.
El Archivo wp-config.php: Tu Tesoro Más Preciado
Este archivo guarda las credenciales de tu base de datos. Si un atacante lo lee, tiene el control total de tu web.
Error común: Dejarlo con permisos 644 o 666, permitiendo que cualquiera en el servidor lo lea.
Solución:
- Accede a tu hosting por FTP o Administrador de Archivos.
- Localiza
wp-config.phpen la raíz. - Cámbiale los permisos a
600o640. Es la mejor barrera contra la lectura no autorizada.
Error común: Tener la clave de seguridad (Salt Keys) por defecto o no tenerlas.
Solución: Las Salt Keys son como contraseñas adicionales que cifran tus cookies de sesión. Debes asegurarte de que son únicas y complejas.
- Ve a la página oficial de WordPress:
https://api.wordpress.org/secret-key/1.1/salt/(No te asustes, es seguro, solo genera claves). - Copia el bloque de código que te da.
- Abre tu archivo
wp-config.phpen un editor de texto. - Busca la sección que dice
define('AUTH_KEY', ...)y todas las demás constantes*_KEYy*_SALT. - Reemplaza las líneas existentes con las nuevas que has copiado.
- Guarda el archivo y súbelo de nuevo a tu servidor.
[INFO]
Esto cerrará la sesión de todos los usuarios, incluida la tuya. Es una medida de seguridad excelente, especialmente si sospechas que alguien ha accedido a tu web.
El Archivo .htaccess: El Guardián de las Reglas
Este archivo controla el acceso a tu servidor, redirecciones y reglas de seguridad. Es un archivo oculto (empieza con un punto) y es muy sensible.
Error común: No tenerlo o que esté vacío. Sin él, pierdes muchas capas de protección y reglas que plugins de seguridad o tu propio WordPress necesitan.
Solución:
- Asegúrate de que existe en tu carpeta raíz. Si no lo ves, activa la opción "Mostrar archivos ocultos" en tu cliente FTP.
- Si no existe, créalo. Pero no te agobies, WordPress lo genera automáticamente al guardar los enlaces permanentes.
- Ve a tu escritorio de WordPress -> Ajustes -> Enlaces permanentes.
- Simplemente haz clic en "Guardar cambios" sin cambiar nada. Esto regenera el
.htaccesscon las reglas básicas.
Error común: Tener reglas mal escritas que bloquean el acceso a tu propio panel de administración (/wp-admin).
Solución: Si te has bloqueado tú mismo, no entres en pánico. Conéctate por FTP, descarga el .htaccess a tu ordenador y haz una copia de seguridad. Después, renombra el archivo en el servidor a algo como .htaccess_old. Esto desactivará todas las reglas. Vuelve a intentar acceder a tu web. Si ya funciona, el problema era una regla en ese archivo. Puedes ir restaurando reglas una a una o, más fácil, reinstalar un .htaccess limpio desde un plugin de seguridad.
El Directorio wp-content: Punto Débil por Naturaleza
Esta carpeta contiene tus plugins, temas y subidas. Es la más atacada porque los archivos de plugins antiguos o con vulnerabilidades suelen vivir aquí.
Error común: Tener la carpeta wp-content/uploads con permisos 777 para poder subir archivos grandes. Esto es un riesgo altísimo, ya que permite a cualquiera subir un archivo PHP malicioso que ejecute comandos en tu servidor.
Solución:
- Vuelve a poner los permisos de
uploadsy todas sus subcarpetas a755. - Establece los permisos de los archivos dentro de
uploadsa644. - Si tu hosting lo permite, añade una regla en el
.htaccessdentro de la carpetauploadspara bloquear la ejecución de archivos PHP. Es una medida avanzada, pero muy efectiva.
Vulnerabilidades Comunes y Cómo Solucionarlas
Ahora vamos a por los fallos de seguridad más explotados que no son solo cuestión de permisos.
Vulnerabilidad #1: "Error de Conexión a la Base de Datos"
Aunque parece un error de funcionamiento, es un síntoma de un ataque (DoS) o de un fallo de configuración grave.
Solución:
- Revisa que las credenciales en
wp-config.phpson correctas (nombre de la BD, usuario y contraseña). - Verifica que tu servidor de base de datos (normalmente
localhost) es el correcto. - Si todo está bien, contacta con tu proveedor de hosting. Puede que tu base de datos esté siendo atacada o haya alcanzado el límite de conexiones. Muchas veces, reiniciar el servicio de base de datos desde el panel de control (como Syspanel, accesible por el puerto 2106) soluciona el problema temporalmente.
Vulnerabilidad #2: "Contenido Mixto" (Mixed Content) o Redirecciones a Sitios Raros
Si tu web te redirige a páginas de spam o tu navegador te avisa de que "la conexión no es privada", es muy probable que te hayan inyectado código malicioso en algún archivo.
Solución:
- Revisa tus archivos: Conéctate por FTP y mira las fechas de modificación de los archivos en
wp-content/themes/ywp-content/plugins/. Si ves archivos modificados en una fecha que no cuadra, ábrelos y busca código extraño al principio o al final (generalmente líneas largas codificadas en base64). - Limpia el código: Si encuentras algo raro, reemplaza el archivo con una copia limpia desde el repositorio oficial de WordPress.org.
- Borra usuarios extraños: Ve a Usuarios en tu panel de administración. Si ves un usuario "admin" que no creaste tú, bórralo inmediatamente y cambia la contraseña de todos los demás.
Vulnerabilidad #3: Plugins y Temas Desactualizados
Esta es la causa número uno de hackeos. Los desarrolladores lanzan actualizaciones que corrigen fallos de seguridad conocidos. Si no las instalas, dejas la puerta abierta.
Solución:
- Ve a tu panel de administración y entra en "Plugins" y "Apariencia" -> "Temas".
- Si ves avisos de actualización, actualiza todo.
- Borra cualquier plugin o tema que no estés usando. Un plugin inactivo pero desactualizado sigue siendo una vulnerabilidad.
- Activa las actualizaciones automáticas para plugins y temas. WordPress te lo permite desde Ajustes.
Vulnerabilidad #4: Fuerza Bruta en el wp-login.php
Los atacantes usan bots para probar miles de contraseñas por segundo en tu página de acceso.
Solución:
- Usa una contraseña fuerte: Mezcla mayúsculas, minúsculas, números y símbolos. No uses "admin" o "123456".
- Instala un plugin de seguridad como Wordfence o iThemes Security. Te permitirán limitar los intentos de inicio de sesión, añadir autenticación de dos factores (2FA) y bloquear IPs sospechosas.
- Cambia la URL de acceso: Plugins como WPS Hide Login te permiten cambiar
wp-login.phpa una URL personalizada, dificultando el ataque. - Protege el archivo
.htaccess: Puedes añadir reglas para bloquear el acceso awp-login.phpdesde ciertas IPs, pero esto es más avanzado.
Checklist Final: Tu Plan de Seguridad en 5 Minutos
Para terminar, te dejo una lista de verificación rápida para que apliques todo lo aprendido hoy.
- Permisos: Cambia todas las carpetas a
755y todos los archivos a644. Elwp-config.phpa600o640. - Actualizaciones: Actualiza WordPress, todos los plugins y todos los temas. Borra lo que no uses.
- Contraseñas: Cambia la contraseña de tu usuario administrador y la de tu base de datos. Usa un gestor de contraseñas.
- Usuario 'admin': Crea un nuevo usuario con rol de Administrador y un nombre difícil de adivinar, y borra el usuario "admin" original.
- Copia de Seguridad: Asegúrate de tener un sistema de copias de seguridad automáticas. Es tu salvavidas si todo lo demás falla.
[TIP]
En tu panel de control, ya sea cPanel o Syspanel (recuerda, el puerto de acceso es el 2106), busca la sección de "Copias de Seguridad" y configura un respaldo semanal al menos. Guarda una copia en un lugar remoto (como Google Drive o Dropbox).
Espero que esta guía te haya sido de gran ayuda. La seguridad en WordPress no es un destino, es un viaje continuo. Con estos pasos, habrás cerrado el 90% de las puertas de entrada más comunes. Si tienes alguna duda, déjala en los comentarios. ¡Nos vemos en el próximo artículo!
