La seguridad de las bases de datos MySQL, MariaDB, PerconaSQL, RDS Aurora, entre otras es un componente crítico que los administradores de sitios web no pueden permitirse ignorar. En particular, para aquellos que gestionan múltiples blogs en un único servidor con WordPress, existen estrategias esenciales de seguridad a tener en cuenta para proteger la integridad de la información y la continuidad de sus servicios.
Estrategia de Contención a Través de la Separación
Una de las prácticas recomendadas consiste en mantener cada blog en su propia base de datos, manejadas por diferentes usuarios. Esta medida se implementa idealmente durante la instalación inicial de WordPress. El propósito de esta estrategia es contener cualquier ataque potencial: si un intruso logra vulnerar una instalación de WordPress, le resultará mucho más difícil alterar los otros blogs alojados en el mismo servidor.
Configuración Segura de MySQL
Para aquellos que administran su propio servidor MySQL, MariaDB o PerconaSQL, es vital comprender a fondo la configuración de tu SQL y asegurarse de que las funcionalidades no necesarias, como la aceptación de conexiones TCP remotas, estén deshabilitadas. Hay recursos disponibles, como «Secure MySQL Database Design», que ofrecen una buena introducción a estas prácticas.
Restricción de Privilegios del Usuario de la Base de Datos
Para operaciones normales de WordPress, como publicar entradas, subir archivos multimedia, comentar, crear nuevos usuarios y instalar plugins, el usuario de la base de datos MySQL, MariaDB o PerconaSQL solo necesita privilegios de lectura y escritura de datos; es decir, SELECT, INSERT, UPDATE y DELETE.
Por lo tanto, se pueden revocar otros privilegios relacionados con la estructura de la base de datos y su administración, como DROP, ALTER y GRANT. Al revocar estos privilegios, también se refuerzan las políticas de contención.
Atención con las Actualizaciones
Nota Importante: Algunos plugins, temas y actualizaciones importantes de WordPress pueden requerir cambios estructurales en la base de datos, como agregar nuevas tablas o cambiar el esquema. En estos casos, antes de instalar el plugin o actualizar el software, será necesario otorgar temporalmente al usuario de la base de datos los privilegios necesarios.
ADVERTENCIA: Intentar actualizaciones sin tener estos privilegios puede causar problemas cuando ocurren cambios en el esquema de la base de datos. Por lo tanto, NO se recomienda revocar estos privilegios permanentemente. Si se considera necesario hacerlo por razones de seguridad, asegúrate de contar con un sólido plan de respaldo. Es crucial mantener copias de seguridad regulares de toda la base de datos, verificar que son válidas y que se pueden restaurar fácilmente. Un fallo en la actualización de la base de datos suele solucionarse restaurando la base de datos a una versión anterior, otorgando los permisos adecuados y permitiendo que WordPress intente la actualización nuevamente. Restaurar la base de datos a una versión previa permite que las pantallas de administración de WordPress detecten la versión antigua y ejecuten los comandos SQL necesarios. La mayoría de las actualizaciones de WordPress no cambian el esquema, pero algunas sí. Solo las actualizaciones mayores (de 3.7 a 3.8, por ejemplo) modificarán el esquema. Las menores (de 3.8 a 3.8.1) generalmente no lo harán. Sin embargo, mantener un respaldo regular es esencial.
En resumen, la seguridad de la base de datos en WordPress no solo es una cuestión de mejores prácticas, sino también una de diligencia constante. Con una correcta estrategia de contención, configuración segura y un enfoque prudente en la gestión de privilegios, puedes asegurar un entorno más seguro para tus blogs y sitios web alojados en WordPress.