HOW-TO: Mejorar la seguridad en WordPress sin plugins

La seguridad en WordPress es uno de esos temas a los que no damos demasiada importancia, al menos hasta que sufrimos un ataque o alguien nos conciencia como intento hacer yo contigo ;). Hoy quiero mostrarte unas cuantas maneras de hacer de tu web un lugar más seguro para que puedas vivir más tranquilo y, como a mí me gusta, sin utilizar plugins de terceros.

Alguno de los puntos que quiero tratar ya te los comenté en el artículo 28 ajustes esenciales tras instalar WordPress, así que aunque haré mención a ellos intentaré no extenderme demasiado. Verás que algunas son cuestiones muy básicas pero que muchas veces dejamos escapar. Con este artículo no quiero decir que tengas que incluir todas las sugerencias que te hago, pero asegúrate de cumplir al menos un par. ¡Atento!

Mantén WordPress, plugins y plantillas actualizadas

Cuando WordPress se actualiza y te ofrece una versión nueva generalmente no lo hace por capricho. Día a día salen nuevas vulnerabilidades a la luz y se corrigen mediante estos parches. Ten en cuenta que es un CMS de los más populares y por ello víctima de un ejército de listos que pretenden hacer cosas que no están bien.

Seguro que te preguntas: ¿y por qué iban a querer entrar en mi web si no tengo tráfico ni información importante?. Probablemente no busquen nada de eso, ni siquiera se molesten en borrar tu trabajo en el que tanto empeño pusiste… lo que quizá quieran es utilizar tu servidor para enviar emails o generar cualquier tipo de spam, y eso te puede generar problemas a la larga como ser blacklisteado de muchos ISPs.

Y esto no sólo se extiende al core de WordPress, actualiza siempre los plugins que utilices así como las plantillas. Hace poco surgió una vulnerabilidad en el famoso plugin WordPress SEO by Yoast, y no todos los plugins gozan del mismo soporte, así que cuidado con ellos.

El único password seguro es el que nunca consigues recordar

Utiliza una contraseña fuerte, en serio, hazlo. Acostúmbrate. Te voy a dar el truco que utilizo yo para recordar una contraseña fuerte sin problemas y después haz lo que quieras… yo ya te avisé.

Ahora en serio, es un tema muy problemático. Se dice que debe tener un mínimo de 6 caracteres, combinar mayúsculas y minúsculas, etc. Otros te dirán que no deben ser palabras del diccionario, que te inventes una cadena aleatoria de letras o símbolos… tampoco hay que obsesionarse con ello.

Lo que debes hacer es utilizar un password distinto en cada servicio o web, tienes que intentar que sea difícil y esto sólo lo conseguirás aumentando el número de caracteres, añadiendo símbolos y números. Después asegúrate de cambiarla cada cierto tiempo y de poder recordarla!

Desinstala los plugins y temas que no utilices

Si hay algo que odio más que un plugin es un plugin que no está actualizado. Y si existiera algo peor todavía sería un plugin que ya no recibe soporte, y los hay. Son bombas de relojería, un hueco perfecto para que cualquiera se cuele en tu web en el momento menos pensado, y tú no quieres eso, ¿eh?

Elimina estos plugins y todos aquellos que no te aporten algo esencial y que no puedas hacer sin ellos. Con los templates es la misma historia, borra todos y deja únicamente tu parent theme y el child theme que espero que estés utilizando, ya te dije cómo así que no tienes excusas.

Cambia las keys que vienen por defecto al instalar WordPress

Esto también te lo comenté en la mega guía de ajustes, que seguro que has leído e incluso tienes el PDF que hice y te envío al suscribirte al blog.

En tu wp-config.php encontrarás un texto similar al siguiente, únicamente tendrás que reemplazarlo con el que verás al entrar al generador de claves de WordPress. Aquí el texto que debes reemplazar:

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

Cuanto menos privilegios tenga un usuario mejor

Si tienes varios redactores en tu blog o en la web de tu empresa lo más fácil y cómodo es darle poderes de administrador a todos. Es muy común y una mala práctica que puede generar muchos problemas, ya que tendrán acceso a instalación, actualización y edición de plugins, así como a cambios en el aspecto de la web o contenido.

WordPress te pone fácil el limitar los privilegios, así que intenta utilizar siempre el perfil más adecuado cuando crees un usuario. Además, en el caso de que algún usuario no tenga una contraseña adecuada y se apoderen de su cuenta… será un alivio haberlo hecho.

Pero no sólo me refiero a WordPress. Si es posible, utiliza un usuario en MySQL con los permisos justos para ejecutar SELECT, INSERT, DELETE y UPDATE; la mayoría de tiempo no necesitarás más privilegios, únicamente cuando quieras instalar o actualizar. Es una forma de limitar los daños en el caso de que alguien se cuele en nuestra base de datos!

Cambia el usuario admin y deshabilita el editor de archivos

Esto también te lo comenté en el otro artículo pero viene bien recordarlo. Por defecto WordPress llama al usuario de instalación «admin», asegúrate de cambiarlo –aunque siempre estarás a tiempo a través de la base de datos– y ponerle uno que recuerdes. Después modifica el perfil de usuario de forma que se muestre públicamente el alias o el nombre con el fin de evitar mostrar el usuario que utilizas para iniciar sesión.

La segunda recomendación de este punto es deshabilitar el editor de archivos que viene integrado con WordPress. La razón como ya te comenté es evitar que lo toque quien no deba, ya que puede arruinarte la web sólo con mirarlo 😉 Para desactivarlo pon esto en tu wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

Cambia el prefijo que utiliza WordPress en la base de datos

Por defecto todas las tablas sabrás que tienen el prefijo «wp_«. ¿Por qué es importante cambiarlo? Porque en el momento que exista una vulnerabilidad, mediante inyección SQL, podrán modificar cualquier tabla –en el mejor de los casos– y mucho más. ¿Vas a conseguir evitar que esto ocurra si pones un prefijo aleatorio? Bueno, es más seguro, aunque hay formas de conseguir averiguarlo.

Tú hazlo, que no cuesta nada y nunca se sabe lo perezoso que pueden ser algunos villanos. Si no lo has hecho no te preocupes, hay formas de hacerlo una vez ya está instalado WordPress, ya te contaré cómo en otro artículo.

Permisos correctos para carpetas y archivos en WordPress

Aunque es un tema discutido y del que puedes encontrar información en cualquier parte no cuesta nada dedicarle dos minutos 😉 En resumen, tus ficheros y carpetas deben tener los siguientes permisos:

  • Carpetas: 775 o 755
  • Archivos: 664 o 644
  • Wp-config.php: 600

Para cualquier duda o configuraciones especiales en algún tipo de servidor determinado siempre es bueno echarle un vistazo al codex. ¡Ah! Y nada de poner permisos recursivos a la carpeta de Plugins o Uploads y cosas así, mucho menos permisos 777!

Protege WordPress mediante .htaccess

Existen varios métodos para aumentar la seguridad en WordPress a través de htaccess. Me parece llevarlo a un nivel extremo pero si crees que puede ser necesario no dudes en hacerlo.

Si antes hemos modificado los permisos de wp-config.php, ahora vamos a restringirlo más todavía. Puedes modificarlo como te indican en stackoverflow o hacer algo que probablemente no sabías sin htaccess: subir el fichero wp-config.php un directorio. Sí, WordPress busca en el directorio inmediatamente superior, haz la prueba!

También puedes restringir el acceso a determinadas IPs si es lo que prefieres, en ese caso sólo tendrás que añadir una línea de código de forma que quede así (sustituyendo la IP):

Order Allow,Deny
Allow from 127.0.0.1
Deny from all

Para el caso de wp-login.php es lo mismo. Y, finalmente, puedes a través de cPanel o el mismo htaccess restringir el acceso a directorios completos como /wp-admin, pero eso te dejo que lo investigues 😉

Elimina información innecesaria

Vamos terminando y quiero acabar con algo fácil. En tu directorio principal probablemente todavía tengas el fichero readme.html, no es que sea motivo de llevarse las manos a la cabeza pero es información que pones en bandeja, como la versión que estás utilizando. Que sí, que igualmente se puede saber de otras maneras… pero se trata de ponerlo difícil, ¿no? Pues bórralo.

Y si todavía estás generando los meta de los que te hablé en el artículo sobre los ajustes esenciales elimínalos también.

Haz copias de seguridad cada cierto tiempo

Para ello existen plugins que ya te recomendé, aunque yo prefiero hacerlo manualmente. Si haces backups de la base de datos asegúrate que los archivos *.sql no estén accesibles para nadie, no quieres que tengan toda la información de tus usuarios aunque sea encriptada!

Elige un buen hosting especializado en WordPress

Aunque no lo creas existen proveedores de hosting que se preocupan por la seguridad de sus clientes. Puede sonar raro si vienes de WanAnWan, pero los hay que cuidan a los que les dan de comer. Te podría nombrar unos cuantos como Hostgator, Webempresa, Hosteurope… pero voy a hablarte de uno que está haciéndolo muy bien últimamente.

Webempresa es un proveedor especializado en este CMS y que ofrece una gama de hostings adecuado para cada necesidad. Échale un vistazo a su web y no dudes en contactar con ellos porque te ayudarán en lo que haga falta, incluso a migrar tu blog u optimizarlo. Y sí, te dejo mi link de afiliado con el que me estarás invitando a un café si lo usas 😉 En serio, podría dejarte el link a Hostgator, Raiola Networks u otros que pagan más, pero entonces no sería una recomendación!

Un buen hosting será el que te ofrezca además de calidad una buena atención, con trabajadores cualificados y formados constantemente. Si están especializados en WordPress mucho mejor, ya que constantemente hay cambios a los que adaptarse.

Utiliza Twitter como medida de seguridad

Sigue a algunas cuentas en Twitter, además de la oficial, con las que estarás al tanto de los riesgos a los que te puedes enfrentar. No hay nada mejor que prevenir los males… a veces procrastinar puede ser desastroso. Yo te propongo que me sigas a mí y prometo avisarte de todo lo que me entere 😉

* * *

Al final me he extendido más de la cuenta y todavía me he dejado al menos cinco puntos en el tintero. Próximamente haré otro artículo para aumentar la seguridad en el login. Te invito nuevamente a suscribirte para no perderte lo que está por venir 😉 Por el momento con todo lo que te he contado tienes para entretener a más de uno con malas intenciones!

Espero que te sirva y decidas implementar al menos dos o tres apartados. Pero tampoco te obsesiones, el tema de la seguridad puede llegar a ser enfermizo y no es para llegar hasta ciertos extremos. ¿Hubieras añadido algo más? Deja un comentario dándome tu opinión!

Deja un comentario

¿Quieres recibir las últimas novedades en tu e-mail?

¡GRACIAS!