Cómo proteger el archivo functions.php y otros archivos PHP críticos en WordPress

El archivo functions.php de WordPress, junto con otros ficheros PHP críticos como wp-config.php, wp-settings.php o index.php, conforman el núcleo funcional del sistema. Estos archivos gestionan la carga del tema, la configuración del sitio, las rutas internas y hasta el comportamiento del sistema de autenticación. Por ello, protegerlos es clave para garantizar la seguridad de una instalación WordPress frente a ataques externos o modificaciones maliciosas.

En este artículo, se describen las mejores prácticas para reforzar la seguridad de estos archivos y evitar que se conviertan en puerta de entrada de ciberdelincuentes.


¿Por qué es importante proteger functions.php?

El archivo functions.php es parte esencial de cada tema de WordPress. En él se añaden funciones personalizadas, se conectan hooks (acciones y filtros), y se registran scripts o estilos. Un atacante que consiga acceso a este archivo podría insertar código malicioso (como shells, redirecciones o funciones de exfiltración de datos).

Este riesgo se amplifica en instalaciones con plugins de edición directa desde el panel de administración o con permisos de archivos mal configurados.


1. Restringir el acceso a archivos desde el navegador

Una de las medidas más efectivas para proteger archivos PHP es bloquear el acceso directo a ellos desde el navegador. Esto se puede hacer fácilmente con reglas en .htaccess para servidores Apache o nginx.conf si se usa NGINX.

Ejemplo para .htaccess:

<FilesMatch "(functions\.php|wp-config\.php|wp-settings\.php|wp-load\.php)">
  Order Allow,Deny
  Deny from all
</FilesMatch>
Lenguaje del código: HTML, XML (xml)

Esta directiva evita que un visitante pueda cargar directamente esos archivos desde la URL.


2. Evitar la edición desde el panel de administración

WordPress permite por defecto editar archivos del tema y del plugin desde el administrador (Apariencia > Editor de archivos). Esta funcionalidad supone un riesgo.

Desactivación en wp-config.php:

define('DISALLOW_FILE_EDIT', true);
Lenguaje del código: JavaScript (javascript)

Esto bloquea el editor visual y reduce significativamente las posibilidades de modificación malintencionada.


3. Establecer permisos seguros de archivos y carpetas

Una mala configuración de permisos puede dejar los archivos del core expuestos a escritura o ejecución indebida.

  • Archivos PHP críticos: 644
  • Directorios: 755
  • wp-config.php: 600 o 640 (según el entorno)

Ajustar estos permisos puede hacerse manualmente o mediante comandos:

find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
chmod 600 /var/www/html/wp-config.php
Lenguaje del código: JavaScript (javascript)

4. Usar un plugin de seguridad con reglas de hardening

Herramientas como Wordfence, iThemes Security o All In One WP Security & Firewall permiten aplicar reglas de endurecimiento (hardening) específicas para proteger archivos del núcleo. Entre sus funciones se incluyen:

  • Protección contra escritura de archivos sensibles
  • Monitorización de cambios en functions.php
  • Alerta por ejecución sospechosa de código PHP

Estas soluciones ofrecen una protección adicional automatizada con escaneos periódicos.


5. Activar la protección contra ejecución de PHP en directorios críticos

Muchos ataques cargan archivos PHP en carpetas como /uploads, /wp-includes o /wp-content/themes/nombre-tema. Para evitar que se ejecuten scripts maliciosos, se puede bloquear la ejecución PHP en estas ubicaciones.

Para Apache:

Crear o editar .htaccess en /wp-content/uploads/:

<Files *.php>
  deny from all
</Files>
Lenguaje del código: HTML, XML (xml)

Para NGINX:

location ~* ^/wp-content/uploads/.*\.php$ {
    deny all;
}
Lenguaje del código: JavaScript (javascript)

6. Monitorizar modificaciones en tiempo real

El uso de herramientas como Tripwire, OSSEC o el plugin gratuito «WP File Monitor Plus» permite notificar cambios en archivos clave como functions.php, wp-config.php o index.php.

Además, se recomienda usar control de versiones con Git en entornos de desarrollo y despliegue controlado mediante CI/CD para limitar errores manuales y mantener un historial de modificaciones.


7. Autenticación de doble factor y control de usuarios

Aunque no afecta directamente a los archivos PHP, limitar quién puede acceder al administrador de WordPress es esencial. Implementar autenticación en dos pasos (2FA) y minimizar el uso de usuarios con privilegios de administrador reduce el riesgo de que alguien con acceso pueda modificar functions.php.


Conclusión

La protección del archivo functions.php y de otros ficheros PHP críticos es un paso esencial en cualquier estrategia de seguridad para WordPress. A través de un enfoque combinado —bloqueo de acceso, configuración adecuada de permisos, desactivación de editores, monitorización y endurecimiento del servidor— se puede reducir drásticamente el riesgo de intrusiones y compromisos del sistema.

Invertir tiempo en estas medidas preventivas es más rentable que reparar un sitio hackeado o exponer datos sensibles de los usuarios.

David Carrero Fernández-Baillo

Experimentando con un sitio web sobre WordPress, este popular gestor de contenidos, entre otros muchos proyectos.

Te puede interesar...

    Comments are closed

    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.