Eliminar código malicioso en header y footer WordPress
Guía completa para detectar y eliminar código malicioso en el header y footer de WordPress, limpiar malware y reforzar la seguridad de tu sitio.
Índice
- Introducción: por qué es crítico eliminar código malicioso en header y footer
- Síntomas comunes de código malicioso en header y footer
- Cómo hackean el header y footer de WordPress
- Preparativos y copias de seguridad antes de limpiar
- Análisis y detección de código malicioso
- Eliminar código malicioso del header y footer paso a paso
- Limpieza avanzada de archivos y base de datos
- Reforzar la seguridad de WordPress tras la infección
- Buenas prácticas para prevenir nuevas infecciones
- Preguntas frecuentes
Introducción: por qué es crítico eliminar código malicioso en header y footer
El header y el footer de WordPress son dos de las zonas más sensibles de cualquier instalación, porque se cargan en todas las páginas del sitio. Cuando un atacante consigue inyectar código malicioso en estos elementos, obtiene una visibilidad total sobre tus visitas, tus formularios y, en muchos casos, sobre tu panel de administración. Por eso, eliminar código malicioso en el header y footer de WordPress no es solo una tarea de limpieza puntual, sino un paso esencial para recuperar la confianza de los usuarios, proteger tus datos y evitar penalizaciones de buscadores como Google.
Este contenido está pensado para administradores de sitios WordPress, agencias y profesionales que necesitan un procedimiento claro, ordenado y seguro para detectar, eliminar y prevenir infecciones de malware en los archivos que generan el encabezado y el pie de página. Se explican tanto métodos manuales como apoyados en plugins de seguridad, con un enfoque práctico y orientado a minimizar el tiempo de inactividad del sitio.
Objetivo de esta guía: que puedas identificar rápidamente si tu header o footer están comprometidos, eliminar el código malicioso de forma segura y reforzar la seguridad de tu WordPress para reducir al mínimo el riesgo de reinfección.
Preparativos y copias de seguridad antes de limpiar
Antes de eliminar cualquier línea de código, es imprescindible preparar el entorno de trabajo y generar copias de seguridad completas. Una limpieza apresurada sin respaldo puede dejar el sitio inoperativo o hacer más difícil rastrear el origen de la infección.
- Actualiza tus credenciales: cambia inmediatamente las contraseñas de administrador de WordPress, FTP/SFTP, panel de hosting y base de datos.
- Activa el modo mantenimiento: utiliza un plugin de mantenimiento o una página estática para evitar que los usuarios vean contenido malicioso durante la limpieza.
- Realiza una copia de seguridad completa: incluye archivos (wp-content, wp-includes, raíz de WordPress) y base de datos. Puedes usar herramientas del hosting o plugins como UpdraftPlus, Duplicator o similares.
- Descarga la copia de seguridad: guarda una copia local para poder comparar archivos y restaurar en caso de error.
- Prepara un entorno de pruebas (opcional pero recomendado): si es posible, clona el sitio en un subdominio o entorno staging para limpiar sin afectar al entorno de producción.
Aunque el sitio esté comprometido, la copia de seguridad sigue siendo útil: te permite comparar archivos, identificar cambios sospechosos y, en el peor de los casos, recuperar contenido si algún archivo legítimo se daña durante la limpieza. Nunca empieces a borrar código sin un respaldo reciente y verificado.
Análisis y detección de código malicioso
El siguiente paso consiste en localizar con precisión el código malicioso. Aunque el problema se manifieste en el header o el footer, es frecuente que existan múltiples archivos comprometidos. Combinar herramientas automáticas con una revisión manual es la forma más eficaz de detectar la infección completa.
Uso de plugins de seguridad
Los plugins de seguridad pueden ayudarte a identificar archivos alterados, patrones de malware y cambios en el núcleo de WordPress. Algunos de los más utilizados son:
- Wordfence Security: ofrece un escáner de archivos, comparación con el repositorio oficial y detección de malware conocido.
- Sucuri Security: analiza la integridad de archivos, supervisa cambios y ofrece un escáner remoto.
- iThemes Security o All In One WP Security: complementan con reglas de endurecimiento y monitorización de archivos.
Ejecuta un escaneo completo y revisa con atención los archivos marcados como sospechosos, en especial los relacionados con el tema activo y los hooks de cabecera y pie de página.
Revisión manual de archivos clave
Además del escaneo automático, es recomendable revisar manualmente los archivos que con mayor probabilidad contienen el código malicioso:
/wp-content/themes/tu-tema/header.php/wp-content/themes/tu-tema/footer.php/wp-content/themes/tu-tema/functions.php- Cualquier archivo PHP recientemente modificado dentro de
/wp-content/
Presta atención a código que no reconozcas, especialmente si está al principio o al final de los archivos, o si aparece envuelto en funciones de ofuscación. Compara con una versión limpia del mismo tema (descargada desde el repositorio oficial o el proveedor) para identificar diferencias.
Si utilizas un editor de código (VS Code, PhpStorm, Sublime Text), puedes buscar globalmente patrones sospechosos como base64_decode, eval(, gzinflate, str_rot13 o URLs desconocidas. Esto acelera mucho la detección de fragmentos maliciosos repartidos por varios archivos.
Limpieza avanzada de archivos y base de datos
Limpiar el header y el footer es un paso clave, pero no garantiza por sí solo que la infección haya desaparecido. Muchos ataques dejan puertas traseras en otros archivos o inyectan código malicioso en la base de datos (por ejemplo, en widgets, menús o entradas). Una limpieza avanzada reduce drásticamente el riesgo de reinfección.
Revisión de otros archivos críticos
Además de los archivos del tema, revisa:
wp-config.php: busca código añadido al principio o al final del archivo.- Archivos en la raíz de WordPress:
index.php,wp-settings.php,wp-load.php. - Carpetas
/wp-admin/y/wp-includes/: cualquier archivo PHP con fecha de modificación reciente que no corresponda a una actualización legítima. - Subcarpetas de
/wp-content/uploads/: algunos ataques esconden scripts PHP en esta carpeta, que debería contener solo archivos multimedia.
Búsqueda de puertas traseras
Las puertas traseras permiten al atacante volver a tomar el control incluso después de que elimines el código visible del header y el footer. Para localizarlas, busca patrones como:
- Funciones peligrosas:
eval,assert,create_function,preg_replacecon modificador/e. - Datos ofuscados: cadenas largas con
base64_decode,gzinflateo combinaciones de varias funciones. - Archivos con nombres extraños o similares a los originales: por ejemplo,
wp-login-old.php,.cache.php,class-wp.phpen ubicaciones inusuales.
Revisión de la base de datos
Algunos ataques inyectan JavaScript o iframes maliciosos directamente en el contenido almacenado en la base de datos. Para revisarla:
- Accede a phpMyAdmin o a una herramienta similar desde tu panel de hosting.
- Busca en tablas como
wp_posts,wp_postmeta,wp_optionsywp_widgets. - Realiza búsquedas de cadenas sospechosas:
<script,iframe, dominios desconocidos o palabras clave relacionadas con spam.
Si encuentras contenido malicioso incrustado en entradas, widgets o opciones, elimínalo con cuidado y guarda los cambios. Siempre que sea posible, exporta antes la tabla afectada para tener un respaldo adicional de seguridad.
Reforzar la seguridad de WordPress tras la infección
Una vez eliminado el código malicioso del header, footer y resto de archivos, es esencial reforzar la seguridad de tu instalación de WordPress. De lo contrario, el mismo vector de ataque podría utilizarse de nuevo en cuestión de horas o días.
Actualizaciones y limpieza de extensiones
- Actualiza WordPress a la última versión estable disponible.
- Actualiza todos los plugins y temas desde fuentes oficiales.
- Elimina plugins y temas que no utilices; menos código significa menos superficie de ataque.
- Evita siempre temas y plugins nulled o descargados de sitios no oficiales.
Endurecimiento básico (hardening)
Aplica medidas de hardening recomendadas por la propia comunidad de WordPress:
- Desactiva la edición de archivos desde el panel añadiendo en
wp-config.php:define('DISALLOW_FILE_EDIT', true); - Asegúrate de que los permisos de archivos y carpetas son correctos (por ejemplo, 644 para archivos y 755 para directorios).
- Restringe el acceso al panel de administración por IP o mediante autenticación adicional cuando sea posible.
- Instala y configura un firewall de aplicaciones web (WAF) a través de un plugin o de tu proveedor de hosting.
Gestión de usuarios y contraseñas
Revisa la lista de usuarios de WordPress y elimina cuentas sospechosas o innecesarias. Asegúrate de que:
- Solo las personas que realmente lo necesitan tienen rol de administrador.
- Todas las cuentas usan contraseñas robustas y únicas.
- Se ha activado la autenticación en dos pasos (2FA) para los usuarios con mayores privilegios, siempre que sea posible.
Tras reforzar la seguridad, programa escaneos periódicos con tu plugin de seguridad y revisa con frecuencia los registros de acceso y los cambios en archivos. La vigilancia continua es clave para detectar y bloquear intentos de reinfección en fases tempranas.
Buenas prácticas para prevenir nuevas infecciones
Prevenir es siempre más eficiente que limpiar. Adoptar una serie de buenas prácticas reducirá significativamente las probabilidades de que tu header, footer u otras partes del sitio vuelvan a ser comprometidas.
- Mantén todo actualizado: núcleo, temas y plugins deben estar siempre en su última versión estable.
- Usa solo fuentes confiables: descarga temas y plugins desde el repositorio oficial de WordPress o proveedores reconocidos.
- Implementa copias de seguridad automáticas: programa backups diarios o semanales, almacenados fuera del servidor principal.
- Monitoriza la integridad de archivos: utiliza herramientas que detecten cambios inesperados en archivos clave.
- Protege el acceso al panel: limita intentos de login, utiliza 2FA y evita el usuario "admin" por defecto.
- Contrata un hosting seguro: un buen proveedor ofrece aislamiento entre cuentas, WAF, actualizaciones automáticas y soporte especializado en WordPress.
- Forma a tu equipo: educa a editores y administradores sobre phishing, contraseñas seguras y buenas prácticas de acceso.
Integrar estas prácticas en tu rutina de gestión de WordPress no solo reduce el riesgo de malware en el header y footer, sino que mejora la estabilidad general del sitio, su rendimiento y la confianza de tus usuarios y clientes.
Preguntas frecuentes
¿Puedo eliminar el código malicioso solo desde el editor de temas de WordPress?
Es posible, pero no es lo más recomendable. El editor de temas puede estar limitado o comprometido, y si cometes un error podrías dejar el sitio inaccesible sin una forma sencilla de revertir los cambios. Es más seguro trabajar mediante SFTP o el administrador de archivos del hosting, con una copia de seguridad previa y comparando con versiones limpias de los archivos.
¿Basta con limpiar el header y el footer para eliminar el malware?
No necesariamente. Aunque el código malicioso se muestre en el header o el footer, suele haber otros archivos y, a veces, la base de datos comprometidos. Si no eliminas también las puertas traseras y scripts ocultos, el atacante puede reinfectar el header y el footer en poco tiempo. Por eso es importante realizar un análisis completo de la instalación.
¿Qué hago si no sé distinguir el código legítimo del malicioso?
En ese caso, lo más prudente es comparar tus archivos con una copia limpia del tema y, si es posible, restaurar los archivos afectados desde la versión original. También puedes apoyarte en plugins de seguridad que marcan las diferencias respecto al repositorio oficial. Si la infección es compleja o afecta a muchos archivos, puede ser conveniente recurrir a un servicio profesional de limpieza de malware especializado en WordPress.
¿Cómo saber si Google sigue viendo mi sitio como peligroso?
Después de limpiar el sitio, accede a Google Search Console y revisa el apartado de problemas de seguridad. Si Google había detectado malware, verás un aviso y podrás solicitar una revisión una vez que estés seguro de que la infección se ha eliminado. El proceso de revisión puede tardar desde unas horas hasta varios días, según el caso.
¿Cada cuánto tiempo debo escanear mi WordPress en busca de malware?
Lo ideal es programar escaneos automáticos al menos una vez por semana, y realizar escaneos manuales adicionales tras cualquier incidente de seguridad, cambio importante en el sitio o instalación de nuevos plugins y temas. En sitios críticos o con alto tráfico, puede ser recomendable aumentar la frecuencia a diaria.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.