Proud lock de Holly Victoria Norval

Internet es un mundo virtual con dos caras. Por un lado, nos permite acceder a un sinfín de información y nos abre una ventana al mundo donde podemos compartir nuestras opiniones y formar parte de maravillosas comunidades. Por otro lado, es un campo de batalla en el que, por desgracia, hay gente dispuesta a joderte molestarte si les das la oportunidad. ¡No seas ingenuo y aprende cómo mejorar la seguridad en WordPress!

Del mismo modo en que no dejas la puerta de tu casa abierta para que cualquier maleante entre libremente, debes tomar una serie de medidas de precaución que aumenten la seguridad de tu WordPress. Y, por suerte, muchas de estas medidas son igual de fáciles de implementar que echar el pestillo o cerrar la puerta con llave, así que no tienes excusa para no aplicarlas desde ya mismo.

Hace unos días te expliqué cómo solucionar los problemas más típicos que pueden aparecer en WordPress. En algunos casos, esos problemas aparecen debido a agujeros de seguridad en nuestra web, los cuales dan a posibles atacantes la posibilidad de corromper nuestros ficheros y/o base de datos. Como bien sabes, «es más importante prevenir que curar», así que veamos qué puedes hacer para evitar tener que llegar a la fase de «solucionar problemas» 😉

#1. Empieza con lo básico: usuarios y contraseñas

Sin duda, el consejo más básico que puede darse y, sorprendentemente, el que menos gente sigue. ¿Por qué? Porque en muchas ocasiones implica cambiar nuestros hábitos de trabajo y eso no nos suele gustar. De todas formas, es importante repasar estos consejos básicos una vez más:

  1. Usa usuarios diferentes para el mantenimiento de WordPress y para la publicación de contenido. Muchas veces, por comodidad, creamos un único usuario con permisos de administrador para gestionar nuestra web (actualizaciones, instalar plugins, etc) y para generar nuevos contenidos (crear y publicar páginas o entradas). ¡Esto es un grave error! Los usuarios que publican contenido tienen una página de perfil (aquí tienes la mía) que contiene información (como su nombre de usuario o su identificador en la base de datos) que puede ser explotada por un cracker. Si el usuario en cuestión tiene perfil de administración y descubren tu contraseña, mal vamos.
  2. Cambia de contraseñas a menudo. Las contraseñas son una de las cosas que más odiamos, porque tenemos tendencia a olvidarlas (especialmente cuando gestionamos más de una a la vez). Sin embargo, son un mal necesario. Personalmente, te recomiendo que cambies de contraseña una vez al mes y, por supuesto, intenta que sean seguras. XKCD tiene una viñeta genial sobre el tema:
    Fuerza de una contraseña
    Viñeta de XKCD que nos explica cómo crear buenas contraseñas.

    Después de 20 años de esfuerzos, hemos sido capaces de enseñar a todo el mundo a usar contraseñas que son difíciles de recordar para un humano, pero fáciles de adivinar por un ordenador.

  3. Evita usar la misma contraseña en diferentes blogs. Imagina que, por lo que sea, un atacante es capaz de descubrir la contraseña de acceso a uno de tus blogs. Si usas la misma en tus demás webs, acabas de dejarle la puerta abierta para que campe a sus anchas por todas ellas… ¡qué bien!, ¿eh?
  4. No sólo WordPress es relevante; también importa todo lo que lo rodea. Es decir, no olvides de ir actualizando las contraseñas de tu FTP, de tu servidor de MySQL, de PHP MyAdmin…

En definitiva, ya ves que WordPress te permite crear múltiples usuarios, cada uno de ellos con diferentes roles y perfiles, y además podemos cambiarles las contraseñas con una facilidad pasmosa… ¡y al final resulta que no usamos nada de eso! Espero que, de ahora en adelante, sí le saques provecho.

#2. Limita los intentos de acceso

Otro consejo súper sencillo de seguir que te ahorrará más de un quebradero de cabeza. Para evitar el malware que se dedica a probar todas las contraseñas posibles hasta conseguir acceder a tu web, nada mejor que establecer un límite de intentos. Así, a la que el atacante haya introducido tres contraseñas incorrectas, la pantalla de inicio de sesión estará bloqueada durante un cierto tiempo, haciendo inútiles los ataques por fuerza bruta.

Para implementar este límite existen muchos plugins. Uno de los que más aceptación tiene (con más de 900.000 instalaciones activas) es WordFence. Además de ofrecer la opción de limitar los intentos de acceso, este plugin comprueba si WordPress ha sido infectado, incluye protección para ataques de denegación de servicio (DDoS), etc.

#3. Mantén tu web actualizada…

Ni los plugins, ni los temas, ni WordPress son 100% seguros. A veces, se descubren vulnerabilidades o fallos que pueden comprometer la seguridad. Por suerte, al ser WordPress una comunidad abierta, cuando eso sucede las correcciones suelen aparecer rápidamente. Sin embargo, de poco sirve que los desarrolladores corrijan un error si luego los usuarios no actualizan su instalación a la última versión para incluir esas correcciones. Por lo tanto, asegúrate de tener actualizado tu WordPress en todo momento, junto con todos los plugins y temas que uses, especialmente cuando las actualizaciones sean de seguridad.

Por cierto, ahora que hablamos de la importancia de mantener un sitio actualizado: no te fíes de plugins o temas que llevan mucho tiempo sin actualizar. Es importante que todo aquello que uses en tu web tenga un desarrollo activo detrás que garantice, hasta cierto punto, que en caso de errores habrá alguien que los corrija. De hecho, una de las ventajas de los temas y plugins premium (de pago) o con modelos de suscripción es que el desarrollador adquiere un compromiso con sus clientes, ofreciendo ese plus de calidad que todos deberíamos buscar. Y, por supuesto, jamás descargues contenido premium de redes P2P o páginas de terceros; el querer ahorrarte unos cuantos euros te puede salir caro.

#4. …y limpia

Si eres de los que disfruta probando diferentes plugins y temas, viendo qué ofrecen, sus menús, su apariencia… tengo malas noticias para ti. Casi siempre, estos componentes generan información que se almacena en tu base de datos: en el mejor de los casos, lo hacen de forma estándar y simplemente aparecen nuevas entradas en la tabla wp_options; en el peor, crean sus propias tablas o incluso modifican las tablas existentes. Sea cual sea la situación, el problema aparece cuando los desactivamos y desinstalamos de nuestro WordPress, puesto que en muchas ocasiones no limpian nada de lo que han «ensuciado».

Mi primera recomendación es que hagas las pruebas en una instalación de desarrollo o de prueba, de tal forma que toda la basura que un plugin o tema pueda generar no se cree en la base de datos de tu web, sino en un sitio auxiliar que «te importe poco». Esto tiene dos ventajas: por un lado, evitas tener una base de datos pesada que ralentice tu web y, por otro lado, te aseguras que, en caso de que el plugin o tema falle, el sitio se caiga y tus visitantes se encuentren con que tu web no funciona.

Si no puedes usar una instalación de desarrollo, entonces tendrás que limpiar a mano la información que generen y que ya no necesitas. Esto no es sencillo y en general pasa por saber (o tener una idea) de qué había en la base de datos antes de instalar el plugin y qué hay después.

#5. Dale vitaminas al fichero .htaccess

El fichero .htaccess es un fichero de configuración de tu servidor y aparece dentro del árbol de directorios de tu servidor. Este fichero nos permite sobrescribir algunas de las reglas globales que se definen en la configuración de nuestro servidor web. Así, por ejemplo, podemos configurar reglas de reescritura de URLs, definir reglas de autenticación, bloqueos, control de caches, etc. Si te interesa el tema, puedes leer una breve introducción en la Wikipedia o en la propia guía del servidor Apache.

Ferrari F430 Spyder de Yahya S.
Fotografía del motor de un Ferrari F430 Spyder. Pocas cosas más potentes hay, ¿no?

Para «vitaminar» tu .htaccess, escribe el siguiente código antes del texto # BEGIN WordPress, puesto que a partir de ese punto WordPress puede modificar el fichero a su antojo. IMPORTANTE. Antes de realizar cualquier edición, guarda una copia de seguridad de la versión actual de tu fichero; si te equivocaras al escribir alguna instrucción, la copia de la versión funcional del .htaccess te permitirá recuperar la web rápidamente.

# Evita que se pueda navegar por el árbol de directorios
Options All -Indexes
# Protege la configuración de WordPress
<Files wp-config.php>
order allow,deny
deny from all
</Files>
# Protege el propio .htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>
# Evita inyecciones de código
# (http://www.wprecipes.com/protect-your-wordpress-blog-using-htaccess)
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
# BEGIN WordPress
# ... aquí ya viene contenido existente...

Recuerda que en Linux los ficheros que empiezan por punto (.) son ficheros ocultos, con lo cual es posible que el fichero exista pero que no lo estés viendo. Activa la opción de mostrar todos los ficheros para poder modificarlo 😉

#6. Cúbrete las espaldas con copias de seguridad

Finalmente, el consejo de seguridad más importante de todos: haz copias de seguridad tan a menudo como puedas. Si sólo puedes permitirte una al mes, hazla. Si puedes una cada día, mejor aún. Cuantas más, mejor. Hay un montón de plugins que te ayudan a mejorar la seguridad en WordPress haciendo copias de seguridad.

Las copias de seguridad son nuestro salvavidas. Cuando todo lo demás falla, una copia de seguridad puede salvarte la vida, puesto que te permitirá recuperar una versión estable y relativamente reciente de tu web en unos pocos minutos.

Resumen

Como puedes ver, conseguir un WordPress mucho más seguro está al alcance de todos. Con un poco de voluntad y ganas de hacer las cosas bien, podrás tener una instalación que lo aguante prácticamente todo. Además, si todo lo demás falla, la copia de seguridad te permitirá recuperar tu web en unos pocos minutos.

Hay muchos otros temas que he dejado fuera de esta entrada y que también contribuyen a la robustez de tu sistema. Por ejemplo, en el Codex podemos leer cómo fortalecer nuestra instalación de WordPress.

¿Me he dejado algo? ¿A qué esperas? ¡Comparte tus conocimientos con otros WPrincipiantes y haz comunidad!

Imagen destacada de Holly Victoria Norval

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de Nelio Software

Tus datos personales se almacenarán en SiteGround y serán usados por Nelio Software con el único objetivo de publicar tu comentario aquí. Con el envío de este comentario, nos das el consentimiento expreso para ello. Escríbenos para acceder, rectificar, limitar o eliminar tus datos personales.