WordPress: Cómo ocultar la versión y los directorios sensibles
¿Sabías que WordPress revela información sensible sobre tu sitio a cualquier visitante curioso? La versión exacta que usas, la ruta de tus archivos internos e incluso la estructura de tus directorios pueden quedar expuestas sin que lo sepas.
Esta información, aparentemente inofensiva, es el primer paso que los atacantes utilizan para buscar vulnerabilidades específicas en tu instalación.
Si tu versión de WordPress es antigua o tiene fallos conocidos, mostrarla es como invitar a los hackers a intentar entrar.
Además, exponer la estructura de tus directorios les facilita localizar archivos críticos como el wp-config.php o tu carpeta de plugins.
En este artículo, te voy a enseñar, paso a paso y de forma muy sencilla, cómo ocultar la versión WordPress, proteger tu archivo de configuración y blindar tus directorios más sensibles.
Vamos a convertir tu sitio en un objetivo mucho más difícil de atacar, sin necesidad de ser un experto en programación.
¿Por qué es tan importante ocultar esta información?
Piensa en tu sitio web como una casa.
Tú no pones un cartel en la puerta que diga "Cerradura modelo X, fabricada en 2019" o "La llave de repuesto está bajo la alfombra".
Pues bien, mostrar la versión de WordPress o la estructura de tus carpetas es exactamente eso.
Es dar pistas a los ladrones sobre cómo entrar.
Los bots maliciosos y los atacantes automatizados escanean constantemente la web en busca de sitios con versiones conocidas de WordPress que tengan vulnerabilidades.
Si no ven la versión, es mucho más complicado para ellos saber si eres un objetivo fácil.
Al ocultar la versión y los directorios, estás aplicando una capa de hardening WordPress (endurecimiento de WordPress) fundamental.
No es una solución mágica, pero es un primer paso crucial que, combinado con otras prácticas, eleva enormemente tu seguridad.
Paso 1: Ocultar la versión de WordPress (La forma más fácil)
Esta es la tarea más sencilla y la que menos conocimientos técnicos requiere.
WordPress añade automáticamente un "meta tag" en el código de tu web que dice algo como <meta name="generator" content="WordPress 6.4.2" />.
También lo añade en los enlaces a tus archivos CSS y JavaScript.
Para eliminarlo, tenemos dos métodos principales.
Método A: Añadir un pequeño código a tu archivo de funciones (Recomendado)
Este método es limpio, eficaz y no requiere plugins adicionales.
Necesitas acceder a tu archivo functions.php de tu tema activo.
Puedes hacerlo desde el panel de administración de WordPress (Apariencia -> Editor de archivos de tema) o mediante FTP.
Advertencia: Si usas el editor de WordPress, asegúrate de estar editando el tema correcto (el que tienes activo).
Una vez dentro, al final del archivo (justo antes de la etiqueta ?> si existe, o al final del todo), añade este código:
// Eliminar la versión de WordPress del generador de meta tags
remove_action('wp_head', 'wp_generator');
// Eliminar la versión de los enlaces a scripts y estilos
function eliminar_version_wp( $src ) {
if ( strpos( $src, 'ver=' ) ) {
$src = remove_query_arg( 'ver', $src );
}
return $src;
}
add_filter( 'style_loader_src', 'eliminar_version_wp', 9999 );
add_filter( 'script_loader_src', 'eliminar_version_wp', 9999 );
Este código hace dos cosas: elimina la etiqueta meta que menciona la versión y limpia los parámetros ?ver=x.x.x de tus archivos CSS y JavaScript.
Guarda los cambios y verifica el código fuente de tu web (clic derecho -> Ver código fuente) para comprobar que ya no aparece la versión.
Método B: Usar un plugin de seguridad
Si no te sientes cómodo tocando código, la opción más sencilla es usar un plugin.
Plugins como iThemes Security o Wordfence incluyen la opción de "ocultar la versión de WordPress" entre sus funciones.
Solo tienes que instalarlos, activarlos y activar esa casilla en su configuración.
Es una solución muy válida, especialmente si ya usas uno de estos plugins para otras funciones de seguridad.
Paso 2: Proteger el archivo wp-config.php (El Santo Grial)
El archivo wp-config.php es el corazón de tu WordPress.
Contiene las credenciales de tu base de datos, las claves secretas de autenticación y el prefijo de las tablas.
Si un atacante consigue acceder a este archivo, tiene el control total de tu sitio.
Por defecto, este archivo ya está fuera del alcance directo del navegador en la mayoría de configuraciones, pero podemos añadir una capa extra de protección.
Bloquear el acceso directo desde el navegador
Vamos a usar el archivo .htaccess para denegar cualquier intento de acceso a este archivo crítico.
.htaccess es un archivo de configuración del servidor Apache que nos permite controlar el comportamiento de nuestro sitio.
Para ello, necesitas acceder a la raíz de tu instalación de WordPress (normalmente la carpeta public_html).
Advertencia: Este archivo es muy sensible.
Antes de modificarlo, haz una copia de seguridad del original.
Abre el .htaccess y añade estas líneas al principio del archivo, justo después de la línea # BEGIN WordPress (si existe):
# Bloquear acceso directo a wp-config.php
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Guarda el archivo y sube los cambios.
Ahora, si alguien intenta acceder a tudominio.com/wp-config.php, verá un error 403 (Prohibido).
Este es un paso fundamental en el hardening WordPress.
Paso 3: Blindar el directorio wp-content
La carpeta wp-content contiene tus temas, plugins y subidas.
Es un área muy importante y, a menudo, el objetivo de ataques que intentan inyectar archivos maliciosos.
3.1. Proteger wp-content/uploads
Dentro de wp-content, la carpeta uploads es donde se guardan todas las imágenes y archivos que subes.
A veces, los atacantes intentan ejecutar archivos PHP dentro de esta carpeta.
Podemos impedirlo añadiendo un archivo .htaccess dentro de la carpeta uploads.
Crea un archivo llamado .htaccess (si no existe) dentro de wp-content/uploads y añade este código:
# Desactivar la ejecución de PHP en esta carpeta
<FilesMatch "\.(?i:php|php5|phtml)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Esto bloqueará la ejecución de cualquier archivo PHP en esa carpeta, lo que dificulta enormemente la subida y ejecución de scripts maliciosos.
3.2. Bloquear la navegación de directorios
Por defecto, si alguien conoce la ruta, puede ver el listado de archivos de tus carpetas.
Para evitar esto en todo el directorio wp-content, puedes añadir otra línea a tu .htaccess principal.
En el mismo .htaccess de la raíz, añade:
# Deshabilitar el listado de directorios
Options -Indexes
Con esta línea, cualquier intento de ver el contenido de una carpeta sin un archivo índice (como index.php) mostrará un error 403.
Esto aplica a todo tu sitio, no solo a wp-content.
Paso 4: Proteger la carpeta de plugins y temas
Al igual que con uploads, es recomendable bloquear la ejecución de archivos PHP no autorizados en las carpetas de plugins y temas.
Sin embargo, esto es más delicado, ya que algunos plugins legítimos usan archivos PHP para funciones AJAX.
La mejor práctica es bloquear la ejecución de archivos PHP en la raíz de estas carpetas, pero permitirla en sus subcarpetas.
Crea un archivo .htaccess en wp-content/plugins y otro en wp-content/themes con el siguiente contenido:
# Bloquear la ejecución de PHP en la raíz de esta carpeta
<FilesMatch "\.(?i:php|php5|phtml)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Este código bloquea la ejecución de archivos PHP directamente en esa carpeta, pero no en sus subdirectorios, donde los plugins y temas suelen tener sus archivos funcionales.
Paso 5: Eliminar otros rastros de información
Además de la versión, hay otros lugares donde WordPress deja pistas.
5.1. Eliminar el "readme.html"
En la raíz de tu instalación de WordPress, existe un archivo llamado readme.html.
Este archivo contiene la versión exacta de tu WordPress.
Es un objetivo muy común para los atacantes.
Acción: Simplemente elimina este archivo.
Si más adelante actualizas WordPress, se volverá a crear, así que es una buena práctica eliminarlo cada vez que actualices.
5.2. Revisar los encabezados HTTP
Los encabezados HTTP también pueden revelar información.
Puedes usar herramientas online o la consola de desarrollador de tu navegador para verlos.
A veces, el servidor o el propio WordPress añaden cabeceras como X-Powered-By o X-Pingback.
Estas no son críticas, pero eliminarlas añade otra capa de anonimato.
Puedes añadir estas líneas a tu .htaccess para eliminar algunas cabeceras:
# Eliminar cabeceras innecesarias
<IfModule mod_headers.c>
Header unset X-Powered-By
Header unset X-Pingback
</IfModule>
Herramientas y consejos adicionales (Hardening WordPress)
- Mantén todo actualizado: La mejor defensa es tener WordPress, tus temas y plugins siempre en la última versión.
- Usa contraseñas fuertes: Tanto en el panel de administración como en el acceso FTP.
- Cambia el prefijo de la base de datos: Si tu base de datos usa el prefijo
wp_, considera cambiarlo (aunque esto es más avanzado). - Instala un plugin de seguridad: Te recomendamos Wordfence o iThemes Security para un monitoreo constante.
- Haz copias de seguridad: Asegúrate de tener un sistema de copias de seguridad automáticas.
¿Y si uso un panel de control como Syspanel?
Si tu hosting utiliza el panel Syspanel, podrás gestionar tus archivos y bases de datos de forma muy visual.
Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (por ejemplo, https://tudominio.com:2106).
Desde su administrador de archivos, puedes editar el .htaccess, subir o eliminar archivos como el readme.html y gestionar la base de datos de forma segura.
Es una herramienta muy útil para aplicar estos consejos de seguridad.
Preguntas Frecuentes (FAQ)
¿Es legal ocultar la versión de WordPress?
Sí, es completamente legal.
WordPress es un software de código abierto y tienes todo el derecho a modificar tu instalación para mejorar su seguridad.
No violas ninguna licencia al hacerlo.
¿Ocultar la versión garantiza que no me hackeen?
No, no es una garantía total.
Es una capa más de seguridad que dificulta los ataques automatizados.
La seguridad es un proceso continuo que requiere mantener todo actualizado, usar buenas contraseñas y estar atento a las mejores prácticas.
¿Puedo romper mi sitio si añado el código al functions.php?
Si cometes un error de sintaxis, podría dar un error fatal.
Por eso es crucial hacer una copia de seguridad antes de editar cualquier archivo.
Si no te sientes seguro, usa un plugin que haga esto por ti.
¿Qué hago si mi hosting no usa Apache y no tengo .htaccess?
Si tu hosting usa Nginx (otro software de servidor), no tendrás archivos .htaccess.
En ese caso, necesitarás modificar el archivo de configuración de Nginx, lo cual es más avanzado.
Puedes pedir ayuda a tu proveedor de hosting o usar un plugin de seguridad que gestione estas reglas por ti.
¿Con qué frecuencia debo revisar la seguridad de mi WordPress?
Idealmente, deberías hacer una revisión básica mensualmente.
Verifica que todo esté actualizado, revisa los usuarios de tu panel y asegúrate de que no haya archivos sospechosos en tus carpetas.
Conclusión
Aplicar estas medidas de hardening WordPress es más fácil de lo que parece.
Cada pequeño paso que das para ocultar versión WordPress, proteger tu wp-config.php y blindar tus directorios, suma una barrera más entre tu sitio y los posibles atacantes.
No necesitas ser un experto en seguridad para hacer tu web un lugar más seguro.
Empieza por los pasos más sencillos, como ocultar la versión y eliminar el readme.html.
Luego, ve avanzando hacia la protección de tus archivos críticos.
La seguridad de tu sitio es una inversión, no un gasto.
Con estos cambios, no solo proteges tu trabajo, sino también la confianza de tus visitantes.
Si tienes alguna duda, recuerda que puedes consultar la documentación oficial de WordPress o contactar con el soporte de tu hosting.
¡Manos a la obra y a blindar tu WordPress!
