Al igual que ocurre con un buen moka, la seguridad en WordPress no debe tomarse a la ligera.
La primera consideración a tener en cuenta es ¿tienes copia de seguridad hecha? Posiblemente tu respuesta haya sido si, además un si con seguridad, sin embargo si te reformulo la pregunta a ¿tienes hecha copia de seguridad y has comprobado que se ha realizado correctamente probándola? Aquí ya tenemos una respuesta que se queda a medias. Digamos que tienes una copia de seguridad tipo schrödinger, puede que funcione cuando lo necesites o puede que no.
Una vez solucionado el haber probado que lo que tenemos funciona vendría el segundo consejo. Actualizar. Es cierto que la mayoría consideramos que se nos va la vida en las actualizaciones, de hecho en cuanto tienes un trabajo que hacer, ahí hay una actualización esperando hacerte la puñeta. Sin embargo, las actualizaciones siempre parchean algún problema de seguridad que antes o después será usado en tu contra, porque la pregunta no es ¿has sido pirateado? sino ¿cuando te van a piratear?
Ya conocemos casos sonados de hackeo a bloggers reconocidos como Claudio Inacio y su aporte a como solucionarlo. Nosotros no queremos que llegues a esto y te contamos como prevenir y aumentar la seguridad de tu site.
Usuario y contraseña
Cuando hagas la instalación de tu WordPress acuérdate de ponerle un poquito mas difícil las cosas a los amigos de lo ajeno. Podemos cambiar el prefijo de la base de datos para que no sea wp_ sino que sea fgrodc_ y que sea algo mas complejo localizar vuestras bases de datos.
Otra cosa que debemos hacer es crear usuarios que no sean los típicos admin, user, 1234 y en ésto WordPress destaca ya que nos permite usar usuario que contengan espacio, es decir, podemos ponernos «Perico el de los Palotes» y créeme si te digo que eso es complicárselo mucho a los del lado oscuro.
Con la password o contraseña pasa un poco igual, usar algo tipo admin, user, 123, qwerty es como tener un coche y las llaves puestas en el contacto. Así, aprovecha alguno de los nuevos métodos que hay para creación de contraseñas, almacenamiento de contraseñas como Keepass, usa autenticación de dos factores 2FA o si te gusta mucho innovar tienes Magic Password o Nomorepass.
Hasta ahora han sido consejos genéricos pero es hora de ponernos la capucha de hacker, encender la lámpara para que nos dé la luz desde atrás y empezar a tocar código como si fuéramos a salvar el mundo.
Configurando WP-Config.php
Una vez tenemos el ambiente épico creado comenzamos tocando el wp-config.php que tenemos en la carpeta principal.
1.Comprobaremos que tenemos este define por defecto, si no, habrá que crearlo:
define( ‘WP_DEBUG’, false );
Una vez comprobado, añadimos las siguientes lineas al final
define( ‘WPLANG’, ‘es_ES’ );
define( ‘WP_DEBUG_DISPLAY’, false );
define( ‘WP_DEBUG_LOG’, false );
define( ‘SCRIPT_DEBUG’, false );
define( ‘WP_CACHE’, true );
define( ‘WP_SITEURL’, ‘https://www.miweb.com’ );
define( ‘WP_HOME’, ‘https://www.miweb.com’ );
define( ‘AUTOSAVE_INTERVAL’, 300 );
define( ‘EMPTY_TRASH_DAYS’, 3 );
define( ‘WP_POST_REVISIONS’, false );
define( ‘DISALLOW_FILE_EDIT’, true );
define( ‘FORCE_SSL_LOGIN’, true );
define( ‘FORCE_SSL_ADMIN’, true );
define( ‘WP_AUTO_UPDATE_CORE’, false );
define( ‘IMAGE_EDIT_OVERWRITE’, true );
define( ‘WP_DEFAULT_THEME’, ‘twentyseventeen’ );
define( ‘CONCATENATE_SCRIPTS’, false );
define( ‘COMPRESS_CSS’, true );
define( ‘COMPRESS_SCRIPTS’, true );
define( ‘COOKIE_DOMAIN’, ‘www.miweb.com’ );
Configurando HTACCESS
2. Una vez hemos modificado los datos para que se adapten a nuestra web poniendo nuestro dominio y nuestro tema podemos salvar y pasar a tocar el siguiente archivo.
Sin movernos de la carpeta en la que estamos, vamos a abrir el .htaccess y le añadiremos las siguientes líneas debajo de # END WordPress, así caparemos el que puedan modificar estos archivos.
<files wp-config.php>
deny from all
</files>
<files readme.html>
deny from all
</files>
<files license.txt>
deny from all
</files>
Cambiamos de carpeta, nos vamos a /wp-content/uploads/ y creamos un .htaccess para impedir que nos puedan subir archivos .php a esta carpeta
<files ~ “,+\.php”>
Deny from all
</files>
Hay quien prefiere prohibir todo y luego mediante una regla permitir las extensiones que le interesa con las siguientes lineas de código:
<Files ~ «.*\..*»>
Order Allow,Deny
Deny from all
</Files>
<FilesMatch «\.(jpg|jpeg|jpe|gif|png|bmp|tif|tiff|doc|pdf|rtf|xls|numbers|odt|pages|key|zip|rar)$»>
Order Deny,Allow
Allow from all
</FilesMatch>
3. Finalmente crearemos un .htacces en /wp_admin/. Este nos permitirá bloquear dos archivos que el propio WordPress nos pide que eliminemos, pero que en cada instalación o actualización nos hace borrar manualmente. Estos archivos son setup-config.php e install.php. Así que una vez los borremos, si creamos el .htacces y le añadimos la regla dejará de crearlos cada actualización ahorrándonos dolores de cabeza.
<Files ~ «^(install|setup-config).php»>
Deny from all
</Files>
Llegamos a la parte final, si ves que tienes calor, puedes apagar la luz de la lámpara aunque lo de la capucha debo decir que te favorece. De hecho, puedes irte, que los plugins lo van a hacer por tí.
Plugins y temas para la seguridad de WordPress
Usa plugins y temas que estén actualizados, a veces la gente crea plugins útiles pero deja de actualizarlos, en esos casos busca nuevos plugins que hayan salido. Por suerte la comunidad WordPress es bastante amplía y continuamente hay gente haciendo cosas nuevas y actualizando. Y recuerda borrar los temas o plugins que no utilices ya que son una ventana extra que puede ser usada en tu contra.
Algunos de esos plugins que comentamos que nos hacen mas fácil la vida podemos destacar wps-hide-login que hace que la página de acceso a nuestro wordpress no sea la típica wp-login. Todo lo que sea volver loco a alguien que intenta aprovecharse de nuestro WordPress o nuestra máquina es bienvenido.
Es aconsejable tener algún plugin como Wordfence que impida que usen algún diccionario de contraseñas contra nuestro login. Aparte también se encargará de vigilar las inyecciones de código, modificaciones de archivos de sistema, etc.
Akismet viene por defecto para prevenir el spam. Si no te gusta este plugin puedes usar cualquier alternativa para mantener tu relación con los usuarios libre de enlaces a sitios perjudiciales y publicidad basura.
Otro plugin interesante es Salt Shaker que cada cierto tiempo que nosotros definamos cambiará las security keys que hay en nuestro wp-config.php. Esto sirve para que si por alguna razón han conseguido alguna cookie con nuestra sesión deje de ser invalida ya que habrán cambiado las llaves con las que hace la comprobación de usuario.
Una cosa que hemos visto como hacer con código, nos la trae mas completa el plugin creado por Wpdanger para el problema de xml-rpc, que evidentemente si no vamos a usar programas de terceros para acceder al gestor de contenidos es un conocido problema de seguridad en WordPress.
Evidentemente la seguridad por oscuridad no es la mejor protección, sin embargo cualquier trozo de madera es bueno si dificulta que nos ensarten con la espada. Una de las cosas que podemos hacer es ocultar la versión de WordPress, CSS, Javasctipt que usamos, nuevamente gracias a unos plugins que hemos encontrado en Wpdanger. Saber que versión estas usando es una de las primeras cosas que cuando pretendes atacar un WordPress debes conocer para saber que vulnerabilidades se le conocen.
Emoji, parece que no tenga ningún peligro, que sean tus amigos, pues no. WordPress tiene un pequeño problema con estos simpáticos iconos y es que si están activos lo que hemos hecho en el párrafo superior no sirve de nada, así que nuevamente con un plugin de Wpdanger lo bloquearemos de manera que no nos convierta ver:(0,34 en ver 🙁 0.34 y enseñe precisamente aquello que no queríamos.
Os vuelvo a recordar la importancia de usar plugins que estén actualizados simplemente dejandoos una imagen que nos muestra la importancia de las actualizaciones.
Por último, deja una página 404 configurada y no dejes que sea WordPress quien lo controle, es un conocido fallo que permite tumbar tu web.
Espero que estos pequeños consejos os ayuden a dejar vuestro WordPress seguro frente a hackers curiosos, spammers, ciberdelincuentes y otra fauna que nos podemos encontrar en Internet.