¿Es para ti una prioridad la seguridad en WordPress? Seguramente sí, pero ¿realmente estás haciendo todo lo necesario para mantener muy segura tu página web o blog en este CMS?
Tu web o blog es tu casa en la red, un sitio muy preciado y al que seguro no querrás que nadie ajeno a ti entre sin invitación.
Los amigos de lo ajeno en la red cada vez utilizan técnicas más sofisticadas para hacerse con el control de un blog o una web. Por tanto, nunca son suficientes todas las más medidas de protección que podamos adoptar contra ellos ¿o sí?
¿Qué puedo hacer para mejorar la seguridad en mi WordPress?
Seguro que ya conoces algunas buenas prácticas en estos temas, tales como hacer copias de tu web en WordPress habitualmente o establecer una contraseña muy segura.
Sin embargo, incluso llevando a cabo estas acciones en tu sitio, puede no ser suficiente para estar bien protegido. Y entonces, es necesario aplicarlas junto a otras pero de un modo mucho más avanzado.
Si una vez creado tu blog o página web quieres mantenerlo seguro, necesitas tomártelo más en serio. Aplica medidas más avanzadas que las estándar, que por norma general te recomiendan todos o habrás leído en muchos sitios.
Es por ello que, en este post contamos con Luis Méndez Alejo de Webempresa, que como especialista en la materia nos va a aportar un CHECKLIST muy avanzado de todos aquellos aspectos que debemos tener en cuenta.
Te dejo ya con esta gran guía para conseguir una mayor seguridad en WordPress.
¡Todo lo que necesitas saber sobre Seguridad en WordPress!
Todo programa por naturaleza tiende a ser vulnerable o inseguro. Y WordPress no es una excepción.
Es por eso que hoy vamos a hablar de este tema.
Si bien es muy seguro (aunque no es infalible) es el usuario y sus buenas prácticas quien lo convierte en un fuerte inexpugnable.
En este artículo voy a revelarte algunos trucos y darte recomendaciones sobre cómo proteger tu WordPress para hacerlo más seguro y así mejorar tu sitio frente a posibles ataques o infecciones.
Checklist de seguridad en WordPress:
A lo largo de este artículo veremos las siguientes 16 acciones a realizar para cubrir los elementos básicos de seguridad en WordPress:
- Proteger el formulario de acceso al dashboard.
- Modificar el nombre de usuario (username) para evitar enumeraciones.
- Utilizar doble factor de autenticación, preferiblemente con token físico.
- Utilizar contraseñas más robustas y menos predecibles.
- Evitar el listado de directorios sensibles de WP.
- Protege el archivo wp-config.php
- Utilizar protocolo SSL para que la transferencia de datos sea más segura.
- En sitios con varios usuarios, forzar el cambio de contraseñas periódicamente.
- Auditar los cambios realizados por diferentes administradores.
- Cambiar el prefijo de las tablas de la base de datos por defecto.
- Realizar copias manuales y automáticas de forma constante y programada.
- Utilizar contraseñas robustas también para la base de datos.
- Acceder siempre a la web de forma segura (SFTP, SSH, cPanel desde VPN).
- Deshabilitar el listado del archivo .htaccess
- Mantener siempre plugins actualizados a versiones estables.
- Alojarse siempre con proveedores de Hosting que garanticen la seguridad global de nuestros sitios web.
Como todo, esto es como hacer una buena ensalada. Si compras un aceite de calidad, a ser posible Extra Virgen, si las lechugas son frescas y ecológicas y los tomates están en su punto de color y textura, sólo será necesario tu toque maestro para combinarlos y crear la ensalada perfecta.
¿Te atreves a hacerlo? ¡Pues vamos a ello!
WordPress es líder indiscutible de audiencia a nivel mundial con una cuota de mercado en Internet del 26% aproximadamente, lo que hace que sea un pastel apetecible para usuarios malintencionados.
Repasemos estos puntos de forma que puedas entender mejor cada uno de ellos y aplicar medidas extra en aquellos apartados de tu web que necesiten un refuerzo para garantizar su estabilidad y seguridad en WordPress.
Recuerda que ni todos son necesariamente aplicables en la mayoría de casos ni tampoco es cuestión de liarse la manta a la cabeza y aplicar niveles de protección paranoicos en tu web.
Busca el equilibro entre lo seguro y lo usable. Los que acceden a tu web de forma legítima son usuarios reales de carne y hueso que quieren principalmente enfocar el tiempo que invierten en tu sitio en leer, aprender o mejorar conocimientos y no en pasar un master sobre medidas de seguridad.
1. Protege el formulario de acceso al dashboard
Existen varias formas de aportar más seguridad al formulario de acceso al «dashboard» de WordPress, sobre todo teniendo en cuenta que es uno de los que más ataques de media recibe en cualquier sitio web existente.
No olvides que todavía un gran número de usuarios sigue utilizando la misma contraseña para acceder a diferentes sitios.
Por regla general suelen ser contraseñas cortas, predecibles o de combinaciones muy simples. Y es justamente esto lo que acaba facilitando el trabajo a los scripts o usuarios malintencionados que buscan sitios con seguridad débil por parte del usuario.
Algunas formas de proteger el dashboard pueden ser:
- Implementar reCAPTCHA (preferible No CAPTCHA reCAPTCHA).
- Añadir un segundo método de autenticación (doble autenticación) con token físico.
- Ofuscar o cambiar el clásico acceso de wp-admin o wp-login.php hacia otro personalizado.
- Habilitar accesos federados tradicionales: Facebook, Twitter, Google [1]
- Habilitar autenticación a nivel Hosting protegiendo el directorio /wp-admin
En este sentido quiero dejarte esta frase que saqué de una entrevista que realicé a Chema Alonso (no necesita presentación) al respecto de 2FA y accesos federados:
OAuth es una buena opción para muchos entornos donde no sea necesario utilizar nueva identidad, pero aún así hace falta controlar el acceso a los assets en cada momento.
Por eso, esto no debería convertirse en una solución patrón por norma.
Podría exponer otras medidas extra aplicables, pero son algo más técnicas y se escapan del foco de este artículo.
Un plugin que puede serte útil para proteger el dashboard: WPS Hide Login
2. Modifica el nombre de usuario (username) para evitar enumeraciones
El nombre más común y que por defecto se establece al instalar WP es Admin, y esto es Vox pópuli.
Sabiendo como ya sabes que esto también lo saben los malos, y para hacer su vida un poco más complicada, es bueno que cambies el nombre de usuario habitual Admin por uno menos predecible y que tenga alguna mayúscula.
¡Mucho mejor así!
Si no te quieres liar aprendiendo a cambiar tu actual ‘username’ llamado admin por uno diferente, menos predecible y algo más seguro, puedes plantearte hacerlo manualmente (previa copia de seguridad en WordPress) si solo tienes un usuario en tu Blog.
¿Cómo cambiar el username admin manualmente?
- Accede al «dashboard» de WP.
- Ve al apartado «Usuarios» ⇒ «Añadir nuevo».
- Crea un nuevo usuario con privilegios de administrador y más personalizado.
- Desde «Entradas» asigna todos los posts al usuario administrador creado.
- Y desde «Páginas» asigna todas las páginas al usuario administrador creado.
- Luego, desde «Usuarios» ⇒ «Todos los usuarios», puedes eliminar el usuario «admin».
Desde el dashboard puedes crear nuevos usuarios «administradores».
Ejemplo de post asignados al nuevo usuario administrador.
Ejemplo de páginas asignadas al nuevo usuario administrador.
Con este sencillo proceso habrás pasado de usar el predecible y enumerable usuario «admin» a usar otro más desconocido y algo más seguro.
3. Utiliza doble factor de autenticación ¡mejor con token físico!
Es cierto que sobre esto ya he comentado algo en el punto dedicado a «Protege el formulario de acceso al dashboard». Aún así, he querido ponerle un poco más de énfasis por el bajo uso que se hace a nivel general de esta medida adicional de protección en el formulario de acceso de WordPress.
Muchos usuarios, por desconocimiento, o por miedo a no saber implementar un 2FA (segundo factor de autenticación) acaban postergando para «nunca» la activación de este tipo de medidas que son muy seguras y recomendables.
Ahora que está más de moda la huella digital como segundo factor de autenticación en dispositivos móviles, quizás te resulte más fácil entender lo importante que puede ser aplicar medidas similares.
Puedes hacerlo hasta con un dispositivo móvil para que el acceso al dashboard de WP sólo pueda ser realizado por quienes tengan acceso a los códigos aleatorios que Apps como Google Authenticator, LastPass Authenticator o Latch aportan.
Existen plugins que son extremadamente sencillos de instalar y configurar y que junto con Apps para iOS, Android o Windows Phone, permiten darle una vuelta de tuerca a la seguridad del formulario de acceso de WP.
Utilizar un segundo factor de autenticación para validar tu acceso con un token físico (tu móvil) es quizás una medida extra de seguridad para WordPress mucho más fiable que ofuscar el acceso a /wp-admin enmascarándolo con otro nombre.
4. Utiliza contraseñas más robustas y menos predecibles
Hasta hace unos meses (quizás un año) era de los que pensaba que una contraseña robusta, alfanumérica, que incluyese caracteres especiales y que tuviese una longitud mínima de 8 caracteres y que no estuviese asociada a fechas destacadas de mi vida, nombres de familiares o mascotas o lugares familiares sería la solución contra cualquier intento de violarla.
Lamentablemente no es así.
Aunque no me voy a poner a detallar en este artículo el porqué, lo cierto es que las máximas a las que estamos acostumbrados sobre las contraseñas pierden cada vez más fuerza y credibilidad frente a la cantidad de nuevos métodos menos falibles de adivinarlas.
A esto te lo explicaré más abajo.
5. Evita el listado de directorios sensibles de WordPress
Cada vez es menos común, sobre todo en instalaciones de WordPress que se alojan en servidores que trabajan con Apache y que permite evitar el listado de archivos y carpetas desde el navegador.
Es por esto por lo que posiblemente muchos usuarios no necesiten plantearse esta medida de seguridad.
Por regla general, evitar el listado de directorios desde el navegador es algo que se hace simplemente añadiendo un archivo index.html en aquellas carpetas susceptibles de ser listadas.
O en todas menos en aquellas en las que haya un archivo index.php responsable de cargar una web, ya que el archivo index.html podría tapar la ejecución del archivo index.php.
Adicionalmente, para evitar de forma global el listado de archivos en directorios de tu Hosting, lo ideal es editar el archivo .htaccess y añadir al principio la directiva de Apache: Options -Indexes.
Sin esta directiva en .htaccess el módulo de Apache mod_autoindex devolvería un listado de los contenidos de un directorio consultado de tu Hosting.
6. Protege el archivo wp-config.php
Al igual que es posible evitar el listado de archivos y carpetas del Hosting, es bueno proteger adicionalmente determinados archivos de WordPress contra miradas curiosas.
Comprueba si expones archivos «delicados» como wp-config.php a ojos de extraños vía navegador.
¡Venga haz la prueba y tipea en tu navegador la url de tu dominio seguida del nombre del citado archivo!
https://tu-dominio.com/wp-config.php
Si te devuelve un error ‘Forbidden’ entonces puedes dormir tranquilo, la instalación de WP asociada a ese dominio está protegida de miradas indiscretas.
Forbidden You don’t have permission to access /wppalene/wp-config.php on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Si por el contrario te muestra en pantalla el contenido del archivo wp-config.php es importante que añadas en tu archivo .htaccess el siguiente código para protegerte contra este tipo de ataques:
order allow,deny deny from all
7. Utiliza SSL para que la transferencia de datos sea más segura
Ni que decir tiene que instalar un Certificado SSL en tu Hosting, para uno o varios (wildcard) dominios o subdominios, es cada vez más importante y necesario si tu sitio web está enfocada al comercio electrónico con plugins como WooCommerce.
Google y otros buscadores le dan cada vez más importancia al uso de SSL (https) en sitios web (también en WP).
Además de ayudarte a ofrecer transacciones encriptadas, cualquier dato que se genere entre el cliente y el servidor de la web viajará más seguro gracias al uso de este protocolo.
Actualmente puedes hacerte con un Certificado SSL gratuito utilizando por ejemplo el que Webempresa ofrece a todos sus clientes.
A pesar de ello, cada vez más proveedores de Hosting están ofreciendo Let’s Encrypt como opción para añadir una capa extra de seguridad en WordPress y pasar fácilmente de HTTP a HTTPS sin tener conocimientos específicos sobre SSL.
No te calientes la cabeza con lo que te cuenten por ahí sobre la «pérdida de velocidad de carga de tu web por usar SSL», ya que es mínima y bien vale para lo que obtienes a cambio.
8. En sitios con varios usuarios, fuerza el cambio de contraseñas periódicamente
Muchos blogs trabajan con uno o varios usuarios, con diferentes roles, ya sean de «Administrador», «Editor», «Autor» etc.
Debes prestar atención a las contraseñas que estas personas utilizan para que no acaben siendo el eslabón débil de la cadena que termine poniendo en peligro la seguridad de WordPress.
«Fuerza el cambio de contraseñas periódicamente para mantener seguro tu WP»
Hazlo idealmente cada 6 meses, es una medida adicional que ayudará a que estos usuarios se vean necesariamente obligados a cambiar contraseñas.
Una password siempre puede ser vulnerable, conocida o quedar expuestas en otros sitios en los que posiblemente hayan utilizado las mismas.
Es posible que si administras sitios de WordPress que trabajen con plugins como BuddyPress y tengas 100 o 1200 usuarios registrados, necesites ejecutar medidas expeditivas.
Tendrás que hacerlo si, por ejemplo, ha habido una vulnerabilidad en tu web y no tienes claro si una contraseña débil ha sido la causa.
Con opciones interesantes como:
- Cambiar todas las contraseñas de los usuarios registrados.
- Añadir un mensaje adicional al mensaje de correo electrónico.
- Enviar un correo para que cambien la contraseña o cambiarla sistemáticamente.
- Elegir qué grupo de usuarios será el afectado por el cambio de contraseña.
Échale un ojo a ese plugin, seguro que te sacará de algún que otro apuro y te ayudará a mejorar tu seguridad en WordPress.
9. Audita los cambios realizados por diferentes administradores
Este es un caso más común de lo que imaginas…
Varios administradores trabajan en un mismo sitio web y de vez en cuando alguno de ellos toma la iniciativa de probar un determinado plugin, eliminar un usuario «registrado», modificar un post, o cambiar las configuraciones del plugin de caché de turno.
Luego vienen los problemas y nadie ha sido el responsable del cambio realizado, y solo queda recurrir a los logs del servidor, si se tiene acceso a ellos, o pensar que se podría haber deshecho el cambio si se usase algún plugin que mantenga un registro de cambios que se producen en el dashboard.
Si sucede algo extraño en tu instalación de WP, aunque seas tu solo el administrador del sitio, te será también muy útil para monitorizar actividades sospechosas.
Entre ellas encontramos algunas como, por ejemplo, el cambio de determinados archivos de forma maliciosa, aprovechando alguna vulnerabilidad puntual de tu instalación.
Con plugins como WP Security Audit Log puedes tener un control de cambios bastante completo sin necesidad de recurrir a plugins pesados como Wordfence o similares.
Al mismo tiempo obtendrás un listado en el dashboard muy completo con interacción en los registros guardados, para saber qué ha ido sucediendo en cada momento.
Registro de actividades destacadas con WP Security Audit Log
Este plugin dispone de funcionalidades adicionales «de pago», pero la versión gratuita es más que suficiente para la mayoría de sitios web que trabajen con uno o varios administradores o usuarios con roles específicos que realicen tareas en el dashboard.
10. Cambia el prefijo de las tablas de la base de datos por defecto
Por defecto en WordPress el prefijo de la base de datos es wp_ y, si bien es cierto que lo puedes modificar cuando lo instalas, existe una probabilidad muy alta de que no lo hagas, lo dejes pasar.
Y luego ese «wp_» acabe convirtiéndose en un vector más de ataque contra tu web, por la simple deducción de que los malos saben también cual el prefijo de la base de datos «by default».
Prefijo de la base de datos por defecto configurado en el archivo wp-config.php
Lo ideal es pensar en el prefijo de la base de datos cuando se instala WP. Si se te pasó por alto en aquel momento, quizás ahora sea un mejor momento para cambiar el prefijo de la base de datos y así mejorar la seguridad en WordPress.
Plugins como Change Table Prefix te permiten realizar este cambio de forma sencilla, tras hacer un «Backup» (¡claro!).
Este proceso es más rápido que hacerlo manualmente, sobre todo si no te llevas aún bien con phpMyAdmin y las consultas SQL.
11. Realiza copias de seguridad en WordPress de forma constante y programada
¿Cuántas copias de seguridad haces al año de tu web? ¿Y al mes? ¿Y semanalmente?
¡Mal! Muy mal… Esto puede ser muy perjudicial para tu seguridad en WordPress.
Yo diría que una buena política de copias de seguridad en WordPress pasa por:
- 1º Realizar automáticamente una copia de seguridad en WordPress diaria de tu web.
- 2º Realizar una copia semanal (un día fijo) y si es programada mejor.
- 3º Realizar una copia mensual, el primer día de cada mes.
- 4º Realizar copias manuales bajo demanda antes de actualizar o de probar temas o plugins.
Si además estas copias las subes a la nube (DropBox, Google Drive, MEGA, etc) mejor que mejor. Así tendrás menos espacio ocupado en el Hosting, en tu ordenador y siempre las tendrás disponibles desde cualquier lugar cuando las necesites.
Si eres de los que piensan que las copias de seguridad son responsabilidad de tu Hosting y no tuya, estás bastante equivocado.
Sólo el día que pierdas datos del mismo día o de la tarde anterior y quieras recurrir a copias del Hosting y te des cuenta que sólo tienen copias semanales o mensuales, aprenderás que tener tu propia política de copias es más importante que casi todo lo demás aquí relatado.
Lo que puedes hacer, por ejemplo, es automatizar las copias de seguridad en WordPress para enviarlas a algún CDN (la nube) de forma automática y programada.
- Simplifica las copias de seguridad y su restauración con: UpdraftPlus WP Backup Plugin
Y esto por citar algunos que funcionan bastante bien.
12. Utiliza contraseñas robustas también para la base de datos
Puede ser que sea un tópico, pero créeme: al final las contraseñas no dejan de ser un valor binario predecible.
Te lo explicaba más arriba cuando hablaba de «Protege el formulario de acceso al dashboard» ¿lo recuerdas?
Da igual si tu contraseña tiene 6 caracteres, 12 ó 127, si es numérica únicamente, está compuesta por letras y número, mayúsculas o minúsculas o caracteres especiales. No es más robusta por ser más larga 😉
Habrá quien me crucifique por esto que estoy diciendo, pero es la verdad.
Cada vez son menos fiables los accesos supeditados únicamente a contraseñas que hay que escribir (o rellenar con LastPass) porque cada vez es más fácil romper la seguridad de estas contraseñas.
Por otro lado están las cuestiones relacionadas con los «keyloggers», esos programitas o scripts que toman buena nota de todas tus pulsaciones y que son cada vez más difíciles de detectar… Principalmente si están condimentados en un rootkit, pues ahí detectarlos se complica.
Y si, también los hay para dispositivos móviles (infelizmente).
Contra todo esto hay muchas formas de combatirlo, pero la más eficaz es que «además de utilizar contraseñas seguras y/o robustas» implementes un segundo factor de autenticación (2FA) para que haya una co-dependencia de un dispositivo móvil, YubiKey, etc., que valide los accesos físicamente.
Si ahora quieres leer lo que todo el mundo cuenta sobre las contraseñas seguras, aquí va el tópico:
La contraseña debe tener al menos 10 caracteres y entre ellos algún carácter extraño #@$%&/()
Y si eres de los que tiene la tentación o la pésima costumbre de almacenarlas en el navegador, por aquello de la comodidad y no tener que estar recordándola constantemente… Mala idea eso de memorizarlas en tu browser habitual si piensas en términos de seguridad en WordPress.
Si de verdad te importa proteger tu sitios con contraseñas, toma al menos algunas precauciones:
- Longitud y Complejidad: Este valor cada vez pierde más peso, pero mejor larga y difícil que corta y fácil.
- Realiza cambios regulares de contraseña.
- Si tu sitio se ha visto comprometido ¡cambia de inmediato las contraseñas!
- Utiliza aplicaciones seguras para almacenarlas ¡núnca en el navegador! (el post-it tampoco vale).
- Una contraseña para cada acceso, no la misma para todo.
- Núnca las compartas de forma insegura. (LastPass dispone de una función para compartirlas sin revelarlas).
» ¿Tu contraseña es segura? ⇒ ¡compruébalo!
13. Accede siempre a tu web de forma segura (SFTP, SSH, cPanel desde VPN)
No es habitual darle importancia al modo como accedemos al dashboard de WordPress.
Puedes acceder:
- Con la wifi del bar de la esquina.
- En el Aeropuerto mientras esperamos un puente aéreo.
- Con la wifi del vecino.
- En la plaza mayor de la ciudad que para eso da el Ayuntamiento wifi gratis.
- Desde el móvil a través de una red insegura o wifi abierta.
Después vienen los “¡ay madre mía!” cuando nos han colado algún regalito junto con los paquetes de datos, o peor aún, nos han esnifado (escuchado) todo el tráfico, conversaciones, emails, autenticaciones al dashboard o FTP.
A veces es demasiado tarde para contener la brecha de seguridad en WordPress. Pues ¡a cambiar contraseñas! Si: de nuevo.
Esto es más común de lo que imaginas, y acaba generando verdaderos problemas no solo a particulares, sino a empresas cuyos empleados tienen un sentido de la seguridad un tanto laxo.
Trabajar con una red privada virtual o VPN (Virtual Private Network) sería la mejor de las opciones, ya que de esta forma estarás generando un túnel encriptado entre tu máquina y la máquina remota (el Hosting donde se aloja tu Web).
Independientemente de que la conexión sea la WIFI del bar o del Aeropuerto y de esta forma aplicando una capa de protección robusta a tu tráfico de datos.
No tienes excusas, los precios de las VPNs son hoy día de risa y sino también existen Apps para iOS, Android etc. para ese propósito. Navegar seguro no es una limitación para nadie, principalmente si vives de tu Blog o web comercial.
Los demás protocolos, como SFTP o SSH van a depender de tu proveedor de Hosting y de si te lo permite y como ¡Consúltaselo!
14. Deshabilita el listado del archivo .htaccess
El archivo .htaccess o archivo de configuración distribuida es un archivo oculto (el punto delante del nombre indica que se trata de archivo oculto).
Se utiliza en servidores que trabajan con Apache para añadir directivas personalizadas por el usuario, principalmente si este no tiene acceso al archivo php.ini del Hosting.
Al igual que nos protegemos del listado de archivos y carpetas, es bueno proteger este archivo de miradas indiscretas.
Ya que suele ser un archivo que en ocasiones puede contener directivas de redireccionamientos que podrían ser manipuladas para forzar la redirección a sitios de dudosa reputación.
Añadir el siguiente código al principio del archivo te ayudará en esta tarea:
order allow,deny Deny from all
15. Mantén siempre temas y plugins actualizados a versiones estables
Ni que decir tiene lo de trabajar con la última versión de WordPress, de tu tema en uso y de los 18 o 36 plugins que tengas instalados.
Y no por decir que estás a la última, sino por disfrutar de las nuevas funcionalidades, las correcciones de seguridad, etc., sino principalmente para… no dejar tu sitio comprometido.
¿Te fuiste de vacaciones verdad?
Pues a la vuelta es probable que te hayas encontrado con WordPress 4.8, 4.9 o la última versión del momento de esta lectura… y descubras que de repente algunos plugins sencillamente no funcionan, o generan problemas colaterales porque sus autores «también se fueron de vacaciones» y dejaron para septiembre eso de las actualizaciones.
Estas son algunas de las razones por las que hay que mantener el CMS y los plugins y temas siempre actualizados.
Debería ser por una razón de fuerza mayor por la que no los actualizas, y tendrás que argumentarla.
De lo contrario no es viable mantener WP en versiones de hace meses o años y encima pretender trabajar con la última versión del tema Divi «responsive» porque algo no va a cuadrar.
Es importante mantener el núcleo de WP al día, principalmente por seguridad, porque aunque sea muy seguro hay días en que algo ocurre y entonces nos acordamos de que se nos olvidó actualizar.
Esto es extensible a plugins y temas en uso, porque para qué quieres la última versión de WP con un mega-flamante tema responsive si luego usas plugins desactualizados desde hace más de 3 años para mostrar tablas de precios en portada.
¡Seguro se va a descuadrar todo!
Hay que cuidar la armonía, y ésta pasa necesariamente por tener todo al día.
¿Qué no puedes actualizar?
Ponte entonces seriamente a analizar el porqué, quizás haya llegado el momento de desprenderte de ese plugin que tanto te gusta, o el tema de Genesis que te costó un pastón y dar un paso adelante y evolucionar.
O buscar algo que combine con las versiones actuales o no encorsetarte en versiones obsoletas y vulnerables por culpa de una manía.
Te lo puedo explicar de 20 maneras diferentes, pero la conclusión es siempre la misma:
- Actualiza siempre el núcleo de WP a la versión estable disponible ¡sin excusas!
- Utiliza plugins de fuentes confiables y versiones estables compatibles con tu versión de WP.
- Hay miles de temas, pero por lo que más quieras, que sean responsive y compatibles con la versión estable de WP.
- Si no lo usas ¡eliminalo! ¿Para que quieres 20 temas y 72 plugins instalados que no usas?
- Haz copia de tu web antes de actualizar y si puedes prueba antes en una sandbox las actualizaciones.
Te pongo un ejemplo real:
Los plugins W3 Total Cache y WP Super Cache, muy populares y utilizados tiempo atrás, presentaron vulnerabilidades de ejecución de código. Un exploit permitía su ejecución.
El 18 de abril se liberaron nuevas versiones de estos dos plugins. Cientos de usuarios (miles) fueron afectados por esta vulnerabilidad, principalmente por no actualizar cuando había versiones corregidas disponibles, actualizaciones que eran bien visibles en el dashboard, aunque luego obviadas.
Una acción tan sencilla como es el aplicar, previa copia de seguridad, las actualizaciones disponibles desde el dashboard, es la solución inmediata y expeditiva contra posibles vulnerabilidades de seguridad en WordPress.
Ignorar los avisos de actualizaciones de temas o plugins o postergar esta tarea para «cuando tengas tiempo» solo ayudarán a que tu sitio quede expuesto y pueda acabar siendo pasto de los scripts-kiddies o usuarios malintencionados que quieran explotar la vulnerabilidad de turno, por diversión, por interés económico o simplemente para aparecer en Zone-H ¡tú decides!
Nuevas versiones de plugins disponibles en el dashboard, Actualizaciones.
16. Alójate siempre con proveedores de Hosting que garanticen la seguridad global de tus sitios web
De poco sirve que trabajes con la versión más estable y tengas plugins y temas actualizados, así como 20 medidas de seguridad adicionales si luego vas y te alojas en un Hosting que no aplique medidas de protección globales para evitar ataques de fuerza bruta, inyección de código en tu base de datos, o algo tan simple como que no haga copias regularmente.
Es importante que consultes a tu proveedor de Hosting por las medidas de seguridad globales que se aplican a nivel servidor, tanto para impedir los ataques de fuerza bruta como para paliar otro tipo de ataques que puedan afectar a tu Hosting y las webs que alojes.
Si se trata de un proveedor de Hosting optimizado para WordPress mucho mejor.
Al final lo importante no es duplicar esfuerzos sino sumarlos, y complementar con medidas adicionales de protección por parte del usuario aquellas que no son cubiertas por el servidor.
Se trata de una suma de tus esfuerzos y los de tu proveedor de Hosting para juntos remar en la misma dirección, que no es otra sino la de garantizar la estabilidad y el uptime de tu sitio web al 99,99%.
Conclusiones
Hay muchas más medidas que tomar y una docena más de plugins para instalar para llevar al máximo la seguridad en WordPress.
El sentido común y el equilibrio entre lo seguro y lo usable debe ser la frontera que te mantenga en un punto de equilibrio.
La perfección no existe, pero tampoco es tan difícil alcanzar el nivel óptimo de prestación si te lo propones.
¿Estás dispuesto a ponérselo un poco más difícil a los malos?
Foto ( Protección web ) Shutterstock
Gracias por la información acabo de crearme un wordpress, y lo tendré en cuenta para la seguirdad!
Muchas gracias por el artículo, cada año se incrementan los ataques en WordPress y otras plataformas, la esencial es fundamental.
Hola R., la verdad es que sí, hay que fomentar la segurdad en este CMS. Saludos
Muy buen post casi todos lo realizo actualmente y me faltan dos que voy a realizar para completar la lista.
Mil gracias.
Gracias por tu feedback, Victoria 😉 Saludos
Muy buenos consejos.
Tengo un problema ojala puedas ayudarme: me llegan correos vinculados a mi pagina web que son SPAM o dicen que son altamente inseguros, ademas son de personas que tratan otros temas y no referente a mi pagina. Aun sigo trabjando mi pagina ya que conforme voy aprendiendo voy haciendola.
Hola Isabel, respecto a este tema, quizás Luis Méndez podría aconsejarte. Esperemos a su respuesta 😉 Saludos
muchas gracias por estos tips, realmente me ha servido de mucho
Hola Guty, nos alegramos que te haya servido. Saludos
muy interesante y útil la guía. Gracias por compartirla. saludos
A ti por leernos 😉
Pero si mismo despues de seguir todos los consejos, aun hay plugins que no actualizan y se te mete un virus por alli? como evitar eso?
Si no se actualizan quizás creemos que es buen momento y opción eliminarlos y buscar una alternativa.
al teclear http ://tu-dominio. com/wp-config.php me sale en blanco la pagina. Al pulsarf Ctrl + U para visualizar el codigo, en blanco tambien. Doy por entendido que estoy protegido, pero el error forbiden que decís no aparece únicamente, insisto, pantalla blanca, ni rastro de codigo ¿ esta correcto ?
Cierto Pau, a nosotros también nos aparece en blanco, por lo que nos comenta en el post Luis (el autor) entendemos que la clave es que no se muestre el contenido del archivo wp-config
Hola Pau,
Lo correcto es que si llamas a tudominio.com/wp-config.php el navegador te muestre:
«No se encontraron resultados
La página solicitada no pudo encontrarse. Trate de perfeccionar su búsqueda o utilice la navegación para localizar la entrada.»
Lo que indicaría que tienes activada la protección de listado de directorios.
Gracias por tu comentario 🙂
No acabo de comprender, si mi navegador no muestra mas que una pantalla en blanco, al pulsar Ctrl + U no visualizo codigo alguno y si ademas para activar la protección de listado de directorios, debo añadir a mi archivo .hatcces order allow,deny Deny from all , es decir denegando TODO la protección de listado de directorios,me da, lógicamente un error 500. Si eres tan amable de decirme exactamente que tengo que hacer para proteger wp-config.php ( he leído de arriba abajo todo el codigo .PHP y esta correcto, comprobándolo ademas desde el repositorio de wordpress ). Gracias
La solución, para que aparezca Forbidden
You do not have permission to access this document. Web Server at paucompany.es, es añadir al
hatcess, las siguientes instrucciones:
order allow,deny
deny from all
No se por que no he pegado bien el codigo, seria:
#Protege wp-config
order allow,deny
deny from all
No me deja introducir el codigo completo, lamento las molestias causadas, pero ya he encontrado la solución, gracias por todo 🙂
Bueno, nos alegramos entonces de que lo hayas podido arreglar.
Si, eso es lo importante, guiándome – por supuesto – en vuestro excelente articulo. Os reitero las gracias
Hola Jose
Me han recomendado tus posts y realmente son muy interesantes.
Coincido totalmente en que la seguridad es importantísima, si una empresa tiene sistemas de seguridad en un local o despacho para protegerse.
Cómo no vas a proteger de forma correcta tu página web si es tu empresa aunque sea en formato virtual.
Un saludo
Muchas gracias, esperamos que encuentres posts tan interesantes en nuestro blog, te damos la bienvenida.
Hola
No sabes que razón tienes, antes tenía lista de suscriptores y no daba importancia a la seguridad tanto.
Hasta que recibí un mensaje de mi hosting que suspendían la cuenta, durante más de una hora eliminando todo el desastre que me hicieron
Mas vale prevenir que curar
¡Vaya Carlos, menudo mal trago que tuviste que pasar! Ciertamente no nos damos cuenta y no le damos importancia a muchos aspectos de nuestros blogs hasta que nos pasa algo desagradable.
Hola Carlos,
Ciertamente que tu Hosting sea quien te informe de que has sufrido problemas de seguridad y que tu cuenta puede ser suspendida, no es una experiencia agradable.
Por este motivo las medidas pasivas y preventivas son tan importantes o más que las medidas paliativas.
Alojarse en un Hosting que cuide de la seguridad de tus sitios webs es parte de esa ecuación de seguridad, el resto es simplemente tomar los mismos cuidados que llevas a cabo en la vida analógica: cerrar puertas y ventanas, activar la alarma, no exponer la propiedad a posibles invasores con ostentaciones innecesarias, no llamar la atención es tan importante como vigilar el perímetro.
Eso, unido a una buena política de seguridad, es la combinación perfecta para evitar contratiempos de seguridad en tus sitios web.
Saludos
Muchas gracias muy buena guia
Nos alegra saber que te lo parezca 😉
Nunca recibimos ataques como para llevar a cabo tantas medidas. Tenemos un cliente que tiene un host en una empresa, Siteground, y ha sufrido varios ataques; la forma de tener todo mas o menos bajo control, sin tener que restringir tanto es instalar un plugin llamado Sucuri, muy util; te envía un mail cuando es modificado un archivo; segun nuestra experiencia el agregado de links en el header o footer es la forma de ataque mas vulnerable que hemos visto.
Muy util., Slds!
Gracias por la recomendación, interesante, no lo conocíamos y quizás alguien más se anime a usarlo y contarnos su experiencia 😉
Hola Jhestudio,
Sucuri es un buen plugin, igual que lo es Wordfence o iThemes Security, todos ellos (y otros que no cito) hacen un buen trabajo, el problema es la carga colateral que acaban generando, pues colectan demasiados datos (algunos sensibles) que acaban en tablas de la base de datos, engordándola de manera importante, como es el caso de Wordfence por ejemplo.
Este tipo de plugins yo los recomiendo en Hostings donde el proveedor no aplica medidas de seguridad globales específicas para CSRF, que podría ser el caso que te sucede con Siteground (no lo se), pero es importante prestar mucha atención al Hosting donde te alojas y analizar si la seguridad perimetral que aplican es la deseada para tu proyecto web o si estás en el lugar correcto.
No por tener muchos plugins de seguridad en WordPress este va a estar más blindado, a veces «ningún» plugin de seguridad y un buen Hosting hacen el mismo o mejor efecto sobre la seguridad de tu web 😉
Gracias por tu comentario.
Nota: Cross-Site Request Forgery (CSRF) – https ://www. owasp. org/index.php/Top_10_2013-A8-Cross-Site_Request_Forgery_(CSRF)
Hola covi,
Lo bueno de los consejos es cuando los llevamos a la práctica porque entonces acaban convirtiéndose en pautas que nos ayudan a evitar sorpresas. 😉
Gracias por tu comentario.
Luis, gracias por los consejos, creo que todos son muy útiles y los voy a poner en práctica de inmediato. me lo guardo en favoritos
Muchas gracias Jose, un excelente articulo lo tomare en practica para mejorar la seguridad que mi blog, saludos desde Peru.
Esperamos que te sea de ayuda para aplicar este checklist en tu blog. Saludos desde España.
Hola Luis, me parece muy bueno tu artículo. Lo primero que hice luego de haber leído tu texto fue revisar lo del wp-config.
Lo que me llama la atención de tu artćulo es que no mencionas (o casi no) los plugins de seguridad que existen para WP (Bulletproof, Wordfence, etc.).
Muchos webmaster que conozco instalan uno de estos plugins (y en muchas ocasiones se olviden de otros pasos de seguridad).
No te parecen útiles o crees que no se debe confiar mucho en estos plugins?
Muy buena pregunta que le lanzas Robert a Luis, tenemos curiosidad por saber la opinión de Luis al respecto.
Un saludo.
Hola Robert,
Excelente pregunta, tal como apunta José Facchin 🙂
Esta pregunta llevo mucho tiempo escuhándola y recientemente (este Lunes 3/10) hice un scope en Periscope sobre esta misma cuestión https ://www. periscope .tv/w/1yNGangkZqqJj )
A raíz de esto empecé a redactar un post que publicaré en breve ya que el asunto da para escribir mucho.
Hay mucha literatura al respecto y será diferente dependiendo de quién lo escriba y las implicaciones que tenga con el Hosting. Lo normal es que si tu Hosting hace bien su trabajo implementando medidas de seguridad con mod_security, creando reglas robustas ( @atomicorp ) y combinándolas con medidas físicas y por software (Firewall, etc) no es necesario instalar NINGÚN plugin de seguridad ya que no vale la pena duplicar esfuerzos y tu instalación si podría resentirse en velocidad de carga y cantidad de registros colectados en la base de datos.
Si por el contrario tu Hosting no hace bien los deberes, entonces tendrás que plantearte plugins como Wordfence, Sucuri o algún antivirus para WordPress que además incluya opciones para bloquear rangos de IP,s que suele ser lo más necesario para tráfico procedente de China, etc.
Lo que tampoco tiene sentido es triplicar funcionalidades e instalar 2 o 3 plugins específicos para hardenizar WordPress y que luego tu web se convierta en un elefante en una pista de hielo ¿ya lo imaginaste? …adiós velocidad de carga, UX y todo lo que se te ocurra.
Si es importante utilizar algún plugin para tener un registro de acciones en el dashboard, como comento en el post de josefacchin.com porque tan importante es bloquear acciones como saber que está sucediendo en todo momento en tu instalación de WordPress que tenga trascendencia y pueda suponer el indicio de que hay un vector en tu web por el que se podría ejecutar un ataque.
Si mantienes el núcleo de WordPress, los plugins y el tema instalados siempre actualizados y tu Hosting es bueno, de los de verdad, de los que hacen bien su trabajo en temas de seguridad, creo que puedes obviar la instalación de plugins y dedicar tu WP a cosas más importantes como es la monetización de tu proyecto.
Feliz por tu comentario Robert 😉
Hola Luis,
Muchas gracias por tu respuesta detallada!
Entonces la principal conclusión es que una de las claves para la seguridad de WP o cualquier tipo de sitio web es el hosting.
Creo que el problema es que mucha gente prefiere comprar un hosting barato que pagar un poco más por la seguridad.
Saludos!
Hola Robert,
Se que suena a tópico, pero ya sabes eso que dicen de que «lo barato sale caro».
No me imagino a un emprendedor o una empresa jugándose la imagen corporativa o de marca en Internet por un puñado de euros.
Hay que economizar en otras cosas pero nunca en el Hosting donde descansa la tranquilidad de tu trabajo, empresa o proyecto web.
Saludos
Nunca pensé que este post fuese del 2 de octubre. 4 dìas y ya se consigue indexado en Google! Bárbaro!
Me lo apunto a Evernote para aplicarlo luego de #NMDigital16. Saludos RamGon y José.
Ya ves Arnaldo, el buen trabajo suele dar resultados 😉
Saludos de vuelta para ti también.
Hoy vengo y me encuentro con este mega pos enhorabuena lo guardo en favorito para leerlo con calma y tomar nota
Un saludo y gracias por el contenido Luis
Muchas gracias, esperamos que te pueda ser útil.
Gracias Edward por tu comentario 🙂
Ciertamente es uno de esos post que deberían convertirse en un checklist para muchos usuarios, ya que se citan pautas a tener siempre presentes en cualquier proyecto web.
Gracias por tu contenido! Muy interesante! Lo implementare en mis sitios! Mil gracias luis! 😀
Genial, muchas gracias Daniel
Qué excelente Daniel que te esté siendo útil. Ese es el objetivo de este post, ayudarte a mejorar la seguridad de tus proyectos con WordPress 😉
Hola José,
Gracias por la parte que me toca 🙂 ..le he puesto mucho cariño a este post sabiendo que era para tu Blog 🙂 además me lo pase genial escribiéndolo!!
Abrazos!
Gracias Luis, te estamos agradecidos porque el resultado ha sido espectacular, una gran guía.