readme.html es un archivo que viene incluido por defecto en WordPress. Su función principal es mostrar información sobre la instalación, incluyendo la versión de WordPress y enlaces a la documentación.
¿Qué contiene readme.html?
Al acceder a:
https://tudominio.com/readme.html
Normalmente se muestra información como:
- La versión de WordPress instalada.
- Enlaces a la documentación oficial.
- Información sobre la instalación.
¿Por qué representa un riesgo?
Por sí solo, readme.html no es una vulnerabilidad. El problema es que puede facilitar el reconocimiento del sitio (reconnaissance) proporcionando información útil a un atacante.
Si el archivo revela una versión antigua de WordPress, un atacante puede:
- Buscar vulnerabilidades conocidas para esa versión.
- Automatizar ataques dirigidos.
- Comprobar si el sitio no ha sido actualizado.
- Priorizar el sitio como objetivo.
Aunque hoy en día existen otras formas de identificar la versión de WordPress, eliminar o restringir el acceso a readme.html reduce la información disponible para un posible atacante.
Cómo proteger readme.html
Método 1: Eliminar el archivo (recomendado).
Si no lo necesitas, simplemente elimínalo:
rm readme.html
Después de una actualización de WordPress, es posible que vuelva a aparecer, por lo que conviene revisarlo periódicamente.
Método 2: Bloquear el acceso en Apache.
Paso 1: Localiza el archivo .htaccess
Conéctate a tu servidor mediante:
- cPanel (Administrador de archivos)
- Plesk
- FTP (FileZilla)
- SSH
Importante: .htaccess es un archivo oculto. Si no lo ves, habilita la opción "Mostrar archivos ocultos" en tu administrador de archivos.
Paso 2: Haz una copia de seguridad
Antes de modificar .htaccess, crea una copia:
cp .htaccess .htaccess.bak
Así podrás restaurarlo si algo sale mal.
Paso 3: Edita el archivo .htaccess
Abre el archivo y añade las reglas antes del bloque de WordPress o justo después de los comentarios iniciales.
El bloque estándar de WordPress es similar a este:
Coloca tus reglas antes de # BEGIN WordPress para evitar que WordPress las sobrescriba.
Bloquear readme.html
Bloquear archivos ocultos
Protege archivos como:
- .env
- .git
- .htaccess
- .htpasswd
Para Apache 2.2:
Método 3: Bloquear en Nginx
Después recarga el servicio:
sudo systemctl reload nginx
Método 4: Bloquear varios archivos informativos
Es recomendable bloquear también otros archivos que pueden revelar información:
En Nginx:
Cómo saber si tu sitio usa Apache
Puedes comprobarlo de varias formas:
- Revisa el panel de tu proveedor de hosting; normalmente indica si el servidor es Apache, Nginx o LiteSpeed.
- Consulta las cabeceras HTTP con herramientas como
curl: curl -I https://tudominio.com - Si aparece una cabecera similar a
Server: ApacheoServer: LiteSpeed, es probable que.htaccesssea compatible. - Si las reglas de
.htaccessno tienen ningún efecto, es posible que el sitio esté usando Nginx (que no utiliza.htaccess) o que Apache tenga deshabilitadoAllowOverride.
En un entorno WordPress con Apache correctamente configurado, estas reglas son una forma eficaz de reducir la exposición de archivos sensibles y dificultar las tareas de reconocimiento de posibles atacantes.
Cómo comprobar si está protegido
Accede desde el navegador:
https://tudominio.com/readme.html
Deberías recibir:
- 403 Forbidden
- 404 Not Found
Si el archivo se muestra correctamente, cualquier persona puede consultar la información que contiene.
¿Es suficiente eliminar readme.html?
No. Aunque eliminarlo es una buena práctica, un atacante aún puede obtener información mediante:
- Metadatos del código fuente.
- Archivos CSS y JavaScript de WordPress.
- La API REST
/wp-json/. - Plugins y temas instalados.
- Cabeceras HTTP.
- Herramientas de reconocimiento como WPScan.
Por eso, la seguridad debe basarse en varias capas.
Buenas prácticas adicionales
Además de ocultar readme.html, conviene:
- Mantener WordPress, plugins y temas siempre actualizados.
- Eliminar plugins y temas que no utilices.
- Desactivar o restringir
xmlrpc.phpsi no lo necesitas. - Limitar los intentos de inicio de sesión para reducir ataques de fuerza bruta.
- Utilizar un firewall de aplicaciones web (WAF).
- Proteger archivos sensibles como
wp-config.php, copias de seguridad.bak, .oldy archivos de configuración. - Revisar periódicamente los permisos de archivos y directorios.
En resumen, readme.html no compromete el sitio por sí mismo, pero puede ayudar a un atacante durante la fase de reconocimiento. Eliminarlo o bloquear su acceso es una medida sencilla que reduce la exposición de información y forma parte de una estrategia de endurecimiento (hardening) de WordPress.