Seguridad en Wordpress

Mantener la seguridad de tu web es importante para ti y tus visitantes. Hoy voy a explicarte como mejorar la seguridad en Wordpress para tu web/blog o tienda.

Cuando hablamos de seguridad nos referimos a muchas cosas. Backups, antivirus, firewall, accesos por fuerza bruta, spam y un largo etc. Existen multitud de plugins que te ayudarán en esa labor. Algunos de ellos especializados en un área concreta y otros que funcionan como un «todo en uno».

Al margen del plugin o plugins que utilices, la idea de este post es que sepas cuales son las medidas de seguridad que debes adoptar para tu web en general. A partir de ahí, podrás elegir por ti mismo/a como llevar a cabo esta importante tarea.

Tienes diferentes posibilidades y te explicaré como lo hago yo. En mi caso particular, al principio opté por un plugin para esto y otro para aquello, pero finalmente saqué como conclusión que en la medida de lo posible, para mi era mejor tener un solo plugin que lo haga todo o casi todo.

Trabajé durante un buen tiempo con Wordfence. Finalmente cambié a All in one Security & Firewall. Tienes otros que son realmente buenos y con larga experiencia «defendiendo» Wordpress.

En este tutorial te explicaré las principales medidas de seguridad que debes adoptar al margen de los plugins, aunque algunas deben implementarse a través de uno. En otro aparte, te explicaré como configurar bien All in one Security.

¿Existe la seguridad infalible?

NO EXISTE. Así de simple

Wordpress es un sistema muy seguro, pero como es tan popular, es el blanco de muchos ataques.

Para que te hagas una idea de lo que hablamos te daré alguna cifras:

El 20 % de las webs que hay en el mundo están hechas con Wordpress

Hablamos de unos 70 millones de webs creadas en Wordpress

Más de 10.000 themes y 25.000 plugins

Las cifras son brutales y por tanto es inevitable que sea un referente a la hora de ser atacado.

Si se adoptan las medidas de seguridad adecuadas, no tendrás que estar preocupado/a por tu web. Cuanto más complicado se lo pongamos, más tardarán en lograr su objetivo y posiblemente acaben por desistir.

Seguridad en Wordpress. Tu web a prueba de bombas

Riesgos potenciales

Existen muchos riesgos que en realidad no dependen de Wordpress y otros que son inherentes al él. Te comento algunos:

  • Hospedaje de baja calidad: Hostings gratuitos o que no tengan las medidas de seguridad adecuadas
  • Wordpress desactualizado: En cada actualización se liberan soluciones de seguridad a vulnerabilidades conocidas y descubiertas. Si no se actualiza, pueden utilizar esas vulnerabilidades.
  • Temas y extensiones desactualizadas: Lo mismo ocurre con los themes y extensiones. También puede ocurrir que se hagan descargas de páginas con el código de estos themes o plugins alterados.
  • Contraseñas poco robustas: El problema de siempre de las contraseñas. Que no sean lo suficientemente fuertes.
  • Base de datos expuesta: Inyecciones de código en la base de datos.

Los ataques no son nada personal. La inmensa mayoría son aleatorios. A veces ni te atacan a ti.

Sencillamente atacan una Ip o un servidor y ahi estás tú con un montón de dominios más que están alojados en la misma máquina y/o comparten la misma IP. Podríamos decir que son «daños colaterales».

Por eso no pienses en algo como «Bah, total la mía es una web pequeña con pocas visitas» o «¿Y quien querría atacarme a mi?» o también «no tengo nada que pueda interesarles».

Tal vez no les interese tu web o tu contenido, pero si tu alojamiento, tus DNS o tu dominio.

Quizá no lo sepas, pero tu web es atacada diariamente y la máquina donde te alojas también. Todos los días hay intentos de login. Esto es el pan nuestro de cada día. Cuando tengas instalado cualquiera de estos plugins, vas a alucinar porque verás cosas muy curiosas.

Contents

Política de seguridad

Tener una política de seguridad muy alta también puede implicar problemas de navegabilidad o usabilidad. Por eso es necesario buscar un punto de equilibrio.

Si aplicamos medidas muy extremas puede afectar a la interacción de nuestros visitantes. A veces es inevitable que puedan existir posibles incompatibilidades y nos vemos obligados a asumir ciertos riesgos.

Asi que es fundamental que tomes diversas precauciones como un punto de partida y un sistema de trabajo habitual.

Copias de seguridad

Esta es la medida de seguridad más importante que debes adoptar. Si en algún momento perdemos el control sobre nuestra web, lo mejor es restaurar nuestro backup. Si no tenemos, podemos encontrarnos con un auténtico problema hasta el punto de perderlo todo.

En función de la frecuencia que con la que actualices o añadas nueva información a tu web, así deberás crear copias de seguridad.

Crear copias de seguridad de toda tu web

Puedes crear una copia semanal o mensual, dependiendo de todas las actualizaciones que hagas. Si añades post o páginas con fotos, debes crear una copia de seguridad en ese momento.

Si actualizas con un nuevo plugin que pueda afectar de alguna manera al funcionamiento de wordpress, es bueno que hagas una copia antes de hacer nada.

Si tienes un Panel Plesk o cPanel es muy sencillo hacer copias de toda la web en formato zip. Luego puedes dejar una copia en tu espacio web y descargarte otro a tu ordenador y guardarla.

Trata de añadir la fecha, para que sepas cuando se hizo esa copia y es bueno que mantengas varias durante un tiempo, porque nunca se sabe cuando pudiste infectarte con malware. A medida que pase el tiempo, puedes ir borrando las más antiguas y dejando las más actuales.

Crear copias de seguridad de la base de datos

Fundamental que guardes una copia con frecuencia de la base de datos, sobre todo si has hecho actualizaciones o has añadido nuevo contenido porque todo se guarda y registra ahí.

No es un archivo que ocupe mucho espacio, por lo que no debes tener problemas para ello.

Si tienes Plesk o cPanel tendrás acceso a la base de datos y podrás descargártela exportando desde phpMyAdmin a tu ordenador o crear copias completas en tu propio alojamiento. Restaurarlas es muy sencillo.

Si las guardas en tu ordenador, luego podrás subirlas e importarlas con phpMyAdmin.

También puedes usar un plugin que se encargue de automatizar estas tareas y recibir incluso por correo una copia de la base de datos por email. Te la comprimen en formato zip y ocupa muy poco. Hay muchas soluciones.

Los plugins «todo en uno» ya traen esta posibilidad, pero si quieres algo mucho más especializado puedes usar BackUpWordpress. Es muy completo.

Tener copias de seguridad te dará mucha tranquilidad.

Instalación de Themes y Plugins

Para mejorar la seguridad de Wordpress hay que empezar por seleccionar muy bien lo que instalamos. Hay varias cosas en las que debes fijarte muy bien antes de instalar un Theme o un plugin.

Cuando haces una búsqueda en tu Wordpress suelen aparecer muchas alternativas para el mismo cometido. ¿En que debes fijarte?

  • Antes de instalar revisa los detalles de la aplicación
  • Fíjate en la última fecha de actualización
  • Con que frecuencia se actualiza
  • Si es compatible con tu versión de Wordpress
  • Cuantas veces ha sido descargado
  • La media de puntuación de los usuarios
  • Revisa el informe de cambios y las Faqs

Todo esto puede darte una idea más precisa de lo te vas a instalar.

Si me apuras también puedes ir a la página del plugin en Wordpress.org (tienes un acceso directo desde esa pantalla) y puedes profundizar mucho más, incluyendo los foros, el soporte, los autores, etc.

En cuanto a los themes, cuando son premium suelen tener soporte con frecuencia, pero cuando no se venden mucho, los desarrolladores acaban por abandonar el proyecto y se centran en otros nuevos. Por lo que es una buena idea que te fijes en el historial de cambios y la frecuencia con la que se hacen.

Procura utilizar repositorios y/o tiendas oficiales de buena reputación.

Si decides descargar plantillas desde páginas free (cuando las plantillas son de pago) corres un riesgo importante, porque no podrás actualizarte y además han podido modificar el código de esa plantilla. Por lo que cuesta una plantilla, sinceramente no te vale la pena.

Wordpress, themes y plugins actualizados

Esto es esencial para evitar que sean utilizadas las vulnerabilidades conocidas de cada versión. Procura tener actualizado Wordpress, los themes y plugins que tengas instalados, incluso si están desactivados.

Pero si los has desactivado porque no tienes pensado usarlos, la mejor opción es que los borres directamente. Piensa que siempre van a estar disponibles para descargar e instalar si en un momento determinado decides usarlos.

medidas_de_seguridad

Medidas de seguridad

Elimina o protege el archivo install.php

Cuando instalamos Wordpress se hace a través de este archivo y es el que genera todos los pasos que vamos siguiendo.

Una vez instalado wordpress, ya no tienen sentido tenerlo. Si alguien con muy mala uva lo encuentra y logra acceder a él, podría utilizarlo para hacerte daño, por ejemplo, cargarse tu instalación y/o base de datos. ¡Imagínate que broma!… ¡Perderlo todo!

Hay varias formas de protegerlo, pero la mejor es eliminarlo.

A través de tu FTP puedes acceder a la carpeta wp-admin y ahí lo encontrarás. Lo borras y un problema menos.

Ten en cuenta que cada vez que actualizamos Wordpress, el archivo volverá a aparecer y debes eliminarlo otra vez.

Si prefieres no estar siempre eliminándolo cada vez que actualizas, entonces puedes hacer lo siguiente:

Bueno, antes de hacer nada y ya te lo digo para sucesivas ocasiones, cuando vamos a editar archivos de Wordpress, tipo wp-config o .htaccess, primero haz una copia de seguridad del archivo, por si algo sale mal poder restaurarla, ¿ok? No toques nada sin una copia previa, salvo que sepas bien lo que haces. ¡Luego no digas que no te avisé!

Crea en esa carpeta un archivo .htaccess

Ahora edítalo y añade lo siguiente:

Copiar

Ya tienes tu archivo protegido.

Cambiar el prefijo de la base de datos

Si un hacker quiere acceder o inyectar código en nuestra base de datos, lo primero que hará es buscar el prefijo de las tablas que componen la base de datos.

Wordpres crea por defecto un prefijo que es «wp_» y lo sabe todo el mundo. Las tablas de Wordpress son comunes a todas las webs. Con esto se lo ponemos mucho más fácil.

Lo mejor es cambiar este prefijo cuando hacemos nuestra primera instalación, pero como esto no lo sabías no lo podías hacer. Para la próxima ya sabes…

¿Cómo se hace?

Importante: Esto solo es para la primera instalación

Accede por FTP a tu archivo wp-config.php en el directorio principal, edítalo y busca esta entrada:

Copiar

cámbialo por:

Copiar

Si ya tienes tu Wordpress operativo, hay un plugin llamado Change DB Prefix que puede hacer esto de modo rápido y eficiente. Cuando ya lo tengas hecho, puedes quitarlo.

Los plugins de seguridad «todo en uno» suelen traer esta opción.

Blindar archivos y carpetas

Algunos archivos de Wordpress son especialmente sensibles.

Un acceso ilegítimo podría desembocar en un verdadero desastre.

Lo mismo ocurre con las carpetas.  Es bueno asignar una serie de permisos para que nadie pueda acceder a ellos.

A través de tu FTP puedes acceder a ellos y asignarles los permisos adecuados. Si tienes acceso por Plesk o cPanel también puedes hacerlo.

Con un programa de Ftp lo habitual es que hagas click en el archivo con el botón derecho y tengas una opción que diga algo como «permisos de archivo».

Haz click en él y te aparecerá una pequeño diálogo en el que puedes cambiar el número.

Los permisos son los siguientes:

Archivos

  • .htaccess: 0644
  • readme.html: 0440. También puedes eliminarlo directamente
  • wp-config.php: 0644

Carpetas

Asignar permisos 0755 a las siguientes carpetas:

wp-admin, wp-content, wp-includes, wp-content/plugins, wp-content/uploads.

Importante: A priori, no debería haber problema pero en función de cada plugin o incluso de tu configuración de apache y php, si cambias algún tipo de configuración y el plugin necesita reescribir un archivo o carpeta, podrías recibir un error porque no es capaz de acceder al ellos debido a los permisos.

Esto suele ser debido a que la configuración de tu hosting. Con mucha probabilidad no utiliza como controlador de php Fastcgi.

En ese caso deberás ampliar los permisos en ese momento y luego volver a ponerlos como estaban.

Eliminar los themes y plugins que no se utilizan

Una práctica muy extendida es ir probando themes y plugins de manera indiscriminada. Todos lo hacemos al principio casi por sistema.

Si nos gustan se quedan y si no nos gustan los desactivamos, pero siguen instalados ahí por tiempo indefinido. Bueno, pues te recomiendo que si no los usas lo borres directamente porque puede existir una vulnerabilidad que sea utilizada por un hacker y liarla parda sin saber que ha ocurrido.

Perfiles y usuarios

Wordpress ofrece la posibilidad de que tus visitantes se registren y tú puedes asignar diferentes tipos de roles. Si vas a usar esta característica ten la precaución de no asignarles un rol de administrador. Generalmente con ser suscriptores es más que suficiente.

Si tienes colaboradores de confianza a los que quieras delegar ciertas funciones asígnales un rol de colaborador, autor o editor.

Pero…si en tu blog solo vas a estar tú y nadie más que tú, lo ideal es que desactives la posibilidad de registrarse. Con esto ya te vas a ahorrar muchos problemas. Esta opción está en Ajustes-Generales

Busca el apartado Miembros y desactiva la opción que dice «Cualquiera puede registrarse«

Usuario ADMIN

Un problema de seguridad en Wordpress es que cuando se instala si no creas tú un usuario, el crea uno por ti que se llama ADMIN.

Los hackers lo saben y lo primero que hacen cuando intentan entrar en tu web es probar con ADMIN.

De esta manera ya tienen el 50% del trabajo hecho. Sólo les queda averiguar la contraseña.

Es importante crear otro usuario administrador, con otro nombre y eliminar ADMIN.

Primero deberás crear el nuevo y asignarle permisos de administrador. Para eliminar ADMIN debes cerrar sesión y volver a entrar con el nuevo usuario, ya que no dejará borrar ADMIN al propio ADMIN.

Contraseñas fuertes

Lo de las contraseñas es un coñazo, lo se. Pero… es lo que hay.

Como tenemos contraseñas para todo, tendemos a usar siempre la misma o que sean muy sencillas de recordar. El problema es que son sencillitas de recordar y también de descifrar.

¿Cómo podemos crear una contraseña fuerte y además recordarla?

Bueno, hay varias alternativas. La primera es utilizar un programa como por ejemplo Keepass. Es un programa que sirve para generar y guardar contraseñas muy interesante. Así solo necesitarás recordar una y todas las que utilices estarán guardadas en keepass.

¿Otra opción? ¡Más bien un truco!

A veces es más fácil recordar una frase que una contraseña.

Piensa en una frase que te resulte conocida. Por ejemplo, esta de Sócrates:

La persona que no comete nunca una tontería nunca hará nada interesante

Ahora cojamos las iniciales

La persona que no comete nunca una tontería nunca hará nada interesante

Lpqncnutnhni

Si queremos rizar el rizo, podemos cambiar las vocales por números.

Por ejemplo podemos:

  1. Cambiar la a por una @
  2. Cambiar la e por un 3
  3. Cambiar la i por un 1
  4. Cambiar la o por un cero
  5. Cambiar la u por un 5

La cuestión está en establecer unas reglas que sean sencillas de recordar para tí.

Tomando esta tabla como referencia la contraseña podría quedar asi.

Lpqn3n5tnhn1

Prueba tú con tus frase favorita….

Protege el acceso por fuerza bruta

¿Qué es esto?. Muy sencillo.

Muchos ataques a tu Wordpress vienen por los bots.

Los bots son robots o arañas programados para visitar las webs de todo el mundo y obtener información.

Por ejemplo Google o Bing envían sus robots a rastrear la información que hay en tu web para clasificarla y ponerla en los buscadores.

Pero no todos los bots son iguales, jejeje.

A los de Google, Bing y los buscadores en general podemos y debemos dejarlos pasar y ¡ponerles una alfombra roja!

Pero hay otros muchos bots diseñados específicamente para tocar las narices.

Por ejemplo para generar spam o reventar el acceso a las webs. Como además no tienen ninguna prisa, pues ahí los tenemos en silencio intentando entrar, probando una y otra vez nombres de usuario y posibles contraseñas.

Esto es lo que se llama ataques por fuerza bruta. Además del peligro que encierran, también nos comen recursos del servidor, generando peticiones una y otra vez a la base de datos.

Para evitar esto, lo mejor es limitar el número de accesos al login. Es decir, le damos la oportunidad de probar hasta un número de veces. Si fallan, entonces baneamos la IP durante un tiempo.

Por si esto fuera poco, hay otro «problemilla».

Cada vez que entras al login introduces tu nombre de usuario o contraseña.

Si el usuario no existe Wordpress muestra un mensaje que dice: «usuario inválido». Problema: El bot ya sabe que no tiene que usar ese usuario y prueba con otro.

Si el usuario es correcto, pero la contraseña no, entonces nos dice: «La contraseña para este usuario no es válida». Problema: Ya sabe que el usuario es bueno, pero la contraseña no. Ya solo tiene que probar una y otra vez contraseñas.

Todo hay que decirlo. En las últimas versiones de Wordpress, han mejorado esto y ahora los mensajes son más sutiles.

Para evitar este problema hay varios plugins. Por ejemplo Login-Lockdown, aunque ahora observo que no se están actualizando con tanta frecuencia, debido seguramente a que todo el mundo tiende a utilizar plugins de seguridad «todo en uno». Cuestión de probar diferentes opciones.

Cambiar la ruta de wp-admin

Esta es una opción muy interesante. Verás… si escribes en tu navegador http://tudominio.com/wp-admin te lleva directamente a tu pantalla de login. Esto lo sabe todo el mundo y los hackers más que nadie. Si eliminamos esta posibilidad, entonces evitamos muchos problemas.

Hay un plugin específico para esto que se llama HC Custom WP-Admin URL, pero ya hace mucho que no lo actualizan. Hay otras soluciones también pero con el mismo problema.

Pero cualquier «todo en uno» trae esta opción, asi que no tendrás problema en solucionarlo.

La idea es que los bots maliciosos, siempre van a buscar 2 direcciones. http://tuweb.com/wp-admin o bien buscarán http://tuweb.com/wp-login

Muy bien, pues habrá que cambiar esa ruta por otra que ellos no conozcan. Por ejemplo http://tuweb.com/loquesea

Podrás hacerlo con estos plugins y es una gran medida de seguridad.

Restringir el acceso a wp-config.php

Una de las medidas de seguridad que nos recomienda Wordpress y que además no se hace mucho, jajaja, es proteger el acceso mediante las claves aleatorias.

Bien, ahora edita tu archivo wp-config.php y busca esto:

seguridad_random_keys

De lo que se trata es de sustituir en la parte roja lo que dice «pon aqui tu frase aleatoria». Wordpress nos facilita una página donde podemos copiar y pegar todo sin complicarnos la vida.

https://api.wordpress.org/secret-key/1.1/salt/

Ahora copia todo y lo sustituyes por el que hay en tu wp-config.php. Fíjate que lo copies y pegues correctamente.

¡Guarda los cambios!. Acabas de agregar una capa de seguridad a tu instalación.

Pero aun podemos hacer más.

Ahora edita .htaccess (recuerda, haz una copia antes de nada)

Introduce lo siguiente al principio o final del archivo:

Copiar

Guarda los cambios. Con este refuerzo evitamos que cualquiera pueda acceder al archivo desde un navegador.

Proteger formularios y comentarios con captchas

Algo tan propio de Wordpress como son los formularios y los comentarios, son la puerta de entrada de los bots que generan spam e inyecciones de código. La inyección de código significa que, por ejemplo en los comentarios, utilicen código y no texto como sería lo lógico. Ese código se guarda en nuestra base de datos y una vez alli, se ejecuta. Esto puede convertirse en una pesadilla y los destrozos pueden ser estupendos…

Los captcha los habrás visto en infinidad de sitios y precisamente lo que evita es que un robot campe a sus anchas generando comentarios con código malicioso o spam.

Cualquier plugin «todo en uno» trae este tipo de protección y es muy importante que protejas tu blog.

Borrar pistas

Es casi inevitable que un hacker sepa que tenemos una instalación de Wordpress. Pero podemos dificultar que sepa cual es la versión que tenemos instalada.

De esta manera no le damos pistas de que pueden hacer o no. Recuerda que cada nueva versión soluciona bugs y vulnerabilidades que son publicadas y pasan a ser de dominio público.

Para esto podemos hacer algo muy facilito.

Debemos borrar unos archivos de nuestro directorio principal que son:

readme.html, licencia.txt, license.txt, wp-config-sample.php.

Estos archivos no tienen importancia para el funcionamiento de la web pero si acceden a ellos le indican que versión tenemos instalada. No nos sirven para nada, pero para ellos son muy buenas pistas.

Desde hace algunas versiones, Wordpress ha cambiado el nombre del archivo readme.hml, añadiendo un numero enorme, que hace casi imposible que puedan acceder a el, sin embargo, te recomiendo que lo elimines igualmente. Así, es seguro que no acceden!!!

¡Pero eso no es todo!

Wordpress indica también en sus metatags la versión instalada, asi que podemos incluir un código en el archivo functions.php o mejor aun, a través del plugin snippets para evitar este problemilla.

Este archivo lo encuentras en la carpeta wp-content/themes/nombredetutema/functions.php. No olvides hacer copia de seguridad del archivo.

También puedes acceder desde el propio editor que tiene Wordpress en Apariencia-editor.

En la parte inferior del archivo podemos añadir lo siguiente (al final de todo):

Copiar

Nota importante: El plugin Yoast Seo y en general los plugins «todo en uno» incluyen este tipo de protección sin tener que recurrir a incluirlo manualmente en el archivo functions.php.

El problema de incluir códigos en functions.php son también las actualizaciones. En el momento en que actualices tu theme perderás los cambios y tendrás que volver a incluirlos. Por eso te recomiendo como alternativa instalar un plugin llamado snippets, que permite incluir cualquier código en el functions.php sin que le afecte ninguna actualización. También es una opción muy recomendable hacerlo a través del tema hijo de tu plantilla.

Impedir el listado de directorios

Esto lo que hace es impedir que un hacker pueda listar los directorios de nuestra instalación. En realidad Wordpress ya viene protegido para esto. Lo que hace es añadir en cada carpeta donde no haya archivos ejecutables, un archivo index.php con un mensaje ¡sorpresa!.

Aun así podría ocurrir que si creas tú una carpeta, tuvieras que incluir manualmente un archivo similar. Es más fácil incluir en el archivo .htaccess una linea que impida hacer un listado de cualquier carpeta.

Edita el archivo y añade al final: (ya sabes, copia de seguridad primero…):

Copiar

Guardar

¡Listo!, un problema menos

Archivo robots.txt

Este archivo debe ir en el directorio principal de tu Wordpress y le indica a los robots de búsqueda que pueden indexar y que no. Es una forma de decirles, puedes ver esto, pero aquí no entres.

Antes se tendía a evitar el acceso a algunas carpetas, como wp-admin, wp-includes y se evitaba el rastreo de archivos css y java. Ahora Google considera necesario rastrear estos archivos.

Por otra parte, te contaré algo. Este archivo no prohíbe nada. Me explico:

A diario, además de los bots de Google y otros buscadores, pasan por tu web decenas de bots. Cada uno con un propósito definido.
La gran mayoría vienen hacer daño de una u otra manera. Estos bots no hacen ningún caso a este archivo. ¡Créeme, me he cansado de comprobarlo!

Una araña de Google, intentará seguir las indicaciones o directrices, pero no siempre lo hacen al pie de la letra. Con todo, hay que decir que Google es posiblemente el que más respeta este archivo, pero para de contar.

En general, todos los demás no harán ni caso, pero por contra pueden utilizar esa información para saber que es lo que no quieres que vean.
E como decirle a un ladrón que intenta entrar en tu casa, «por favor, aquí no entres que tengo cosas de valor»

En mi modesta opinión, creo que lo más importante que puedes poner en ese archivo, es la url del sitemap y cuando pienses en el, hazlo teniendo en cuenta a Google, porque los demás…..no harán ni caso!!!

Yo, el archivo robots que uso ahora tiene el siguiente contenido:

Copiar

Pero en realidad, excepto Google, no espero que le hagan mucho caso. La mejor manera de evitarlos es banearlos directamente y sin piedad.

Protección contra el Spam

Aquí tienes dos opciones. Instalar una extensión específica para combatir el Spam o bien un plugin «todo en uno».

Wordpress viene con una magnífica extensión antispam preinstalada llamada Akismet. Solo has de activarla y conseguir una llave gratuita y listo.

Inyecciones de código en los comentarios

Uno de los problemas con los que te encontrarás es el uso de código en los comentarios. Si te fijas, casi todos los themes y el propio Wordpress permiten que si dejas un comentario puedas también insertar algún tipo de código básico en html.

Por ejemplo para resaltar un texto o cualquier otra cosa. El problema es que esto ya es suficiente para que puedan dejar código malicioso.

Tienes dos opciones. Puedes desactivar la opción de hacer comentarios y con eso ya tienen mucho avanzado. Pero si tienes un blog los comentarios son muy importantes y por tanto no debes desactivarlos.

Podrías externalizarlos con una herramienta que es Disqus. Es muy interesante y te permite tener tus comentarios pero fuera de Wordpress, estúdialo.

Otra opción es insertar un pequeño código al final del archivo functions.php que evita que se pueda insertar código en los comentarios.

Copy

De todas formas, yo te recomiendo que utilices un plugin «todo en uno» que ya traen esta opción y además evitará que se puedan incluir enlaces.

Detectar infecciones de virus

Tendemos a pensar que si nos infectamos con algún virus nos vamos a dar cuenta, pero esto no es asi siempre. Podemos estar infectados con malware y estar siendo utilizados para infectar a otras personas y no darnos cuenta hasta que es demasiado tarde.

Debes testear de vez en cuando tu web y voy a recomendarte tres sitios muy interesantes.

Google

https://www.google.com/safebrowsing/diagnostic?site=tudominio.com

Copia esta URL y sustituye tudominio.com por el tuyo.

Te dará información interesante que está en la base de datos de google. Esta información tambien la tienes disponible en tu herramienta Google Search Console.

https://sitecheck.sucuri.net/results/tudominio.com

Aqui puedes hacer un scaneo de la seguridad de tu web.

https://www.virustotal.com/es/

Aqui puedes hacer un escaneo de archivos y de la url que quieras.

Proteger .htaccess

Ya ves que este archivo es vital para tratar de proteger nuestro Wordpress. Imagínate si alguien pudiese acceder a el. Esto puede suscitar la pregunta, ¿quién lo protege a él?

Pues es tan chulo que se protege a si mismo, jajaja.

Copia de seguridad al canto y edítalo. Solo hay que añadir lo siguiente al final:

Copy

Con esto tenemos el archivo blindado.

Es posible que tengas más archivos .htaccess en otros directorios tratando de proteger algunos archivos. Si es así añade el mismo código a todos ellos.

Algunos consejos en caso de infección

Bueno, si el peor de los presagios se cumple y al final descubres que han entrado en tu Wordpress voy a darte unos cuantos consejos que pueden ayudarte en un momento tan delicado.

sin panico

Mantén la calma

Tomar decisiones precipitadas puede agravar el problema. Ya han entrado, asi que ahora toca pensar las cosas.  Hay que estudiar la situación y recopilar toda la información antes de hacer nada.

Pasa un antivirus en local

Escanea tu equipo con un antivirus bien actualizado a ver si es posible descubrir donde se ha producido la infección. Recuerda si subiste archivos últimamente, porque tal vez no te han atacado, pero tu mismo pudiste subir archivos infectados.

Contacta con tu soporte técnico

Tal vez ellos pueden ayudarte con otras medidas a nivel de servidor, pero depende del tipo de soporte que ellos ofrezcan.

Cambiar las contraseñas

Quizá no puedas acceder a tu wordpress, pero si puedes, cambia tu contraseña de administrador

Elimina usuarios

Verifica cuales son tu usuarios y si tienen rol de administración. Borra todos los que tengas que sean extraños y no conozcas. Elimina todos los que sean administradores, excepto el tuyo.

Desactiva plugins y elimínalos

Es posible que hayan podido acceder por ahí.

Desactiva los themes y bórralos

Desactiva todos los themes que tengas y pon el que viene por defecto. Bórralos, porque tal vez han podido entrar por ahí.

Backups

Si no tienes backups, debes hacer uno para poder recuperar información más tarde. Pero recuerda que será un backup infectado por lo que deberás tener mucho cuidado al utilizarlo.

Revisa el .htaccess

Tal vez hayan metido redirecciones en tu archivo .htaccess. Revísalo y elimina lo que veas extraño y que no hayas introducido tu. Si te supera crea uno nuevo o restaura otro anterior. Revisa los permisos y que ponlos en 0644.

Restaurar el sistema

Si tienes un backup puedes volver a un punto anterior, por eso es importante tener copias lo más actualizadas. Posiblemente se pierda información pero es pero perderlo todo.

Si no tienes un backup

Pues en este punto, lo veo todo muy complidado. Si has seguido todas las medidas, y sigues infectado y no puedes restaurar, puedes hacer algo, pero no creas que será la solución a tus problemas, aunque igual suena la flauta…

De entrada, restaura wordpress. Es decir, sube por el ftp todos archivos de wordpress limpios. Quizá hayan infectado algunos archivos y al poner unos limpios todo vuelva a funcionar. Pero nos queda la base de datos y tal vez la infección está ahi. Tendrás que revisarla, pero…. te va a llevar tela y no es algo fácil. Quizá tengas que recurrir a un profesional.

Utilizar un plugin todo en uno

Existen diferentes opciones y todas muy buenas. Pero como siempre todo tiene sus ventajas e inconvenientes.

Si utilizas diferentes plugins de seguridad, tienes como ventaja el hecho de que si falla uno, los demás aspectos de seguridad siguen funcionando. Si utilizan un plugin «todo en uno» y se ve comprometido por una vulnerabilidad, podría fallar todo.

Estúdialo y en función de tus necesidades, decide.

En mi opinión personal, especialmente para los que se inician, creo que lo mas acertado es usar un plugin «todo en uno». Suelen cubrir todos los agujeros de seguridad, se actualizan con mucha frecuencia y la administración es mucho mas sencilla.

Tienes varias alternativas. Por ejemplo Ithemes security, All in one WP Security & Firewall, Wordfence y algunos más.

Yo personalmente utilizo All in one WP Security & Firewall. No digo que sea mejor que los demás. Sencillamente opté por él porque trae todo lo que necesito. Ni más ni menos.

Todo lo que has visto en este tutorial viene «de serie» en All in one WP Security & Firewall y también en Ithemes security. El primero es completamente gratuito.

Wordfence tiene cosas muy interesantes, pero para ello hay que acceder a la versión de pago y no contiene algunas de las medidas que te he mencionado.
Sin embargo es muy bueno haciendo su trabajo. Es especialmente útil si queremos bloquear ip por países o zonas geográficas (pago).

Es cuestión de que pruebes y saques tus propias conclusiones. Sea como sea, los tres son muy completos.

Crearé un tutorial sobre el uso de All in one WP Security & Firewall, que en el fondo será un repaso a lo que has visto en este, con algún añadido interesante.

Bueno, creo que tienes trabajo por delante. Ponte manos a la obra con la seguridad en wordpress.

Si esto te ha resultado de ayuda, ya sabes, compártelo y ayuda a otras personas.