Proteja su WordPress: 5 elementos esenciales para proteger su sitio
Resumen de los puntos clave
- Verificación de temas y plugins: Verifique los temas y plugins antes de instalarlos para evitar riesgos de seguridad; prefiera descargarlos del repositorio oficial de WordPress o de fuentes de confianza.
- Cambiar la URL de inicio de sesión y el captcha: Protege WordPress de ataques de fuerza bruta cambiando la URL de inicio de sesión y añadiendo un captcha a la página de inicio de sesión utilizando plugins como WPS Hide Login y hCaptcha.
- Deshabilitar la API REST para usuarios no autorizados: Evite el acceso no autorizado a los nombres de usuario deshabilitando la API REST para usuarios no autorizados y garantizando al mismo tiempo la funcionalidad para editores y administradores autorizados.
- Desactivación de la exploración de directorios: Desactiva la exploración de directorios para evitar que los hackers accedan a las estructuras de archivos y encuentren vulnerabilidades en plugins y temas.
- Denegación de acceso a la carpeta .git: Proteja el código fuente de su sitio web denegando el acceso a la carpeta .git, utilizada habitualmente por los desarrolladores, mediante la configuración del servidor.
- Denegación de acceso al archivo xmlrpc.php: Proteja WordPress de ataques de fuerza bruta de contraseñas denegando el acceso al archivo xmlrpc.php, que proporciona un punto de entrada a los atacantes.
Índice
Algunas personas sienten pereza cuando oyen hablar de seguridad y no siguen instrucciones muy básicas. Por supuesto, siempre y cuando su sitio web no sea hackeado. Otros se vuelven locos y bloquean todo lo que pueden, empeorando la experiencia del usuario. Pongámonos en el medio y protejamos WordPress de las amenazas más frecuentes, pero sin volvernos paranoicos. Siguiendo estos consejos te ahorrarás el uso de pesados y caros plugins de seguridad.
Básico para principiantes
Aquí debo decir un par de palabras sobre cosas muy básicas relacionadas con la seguridad. La siguiente información es sólo para principiantes, siéntase libre de saltársela si se siente seguro de sí mismo en cuestiones básicas de seguridad.
Por lo tanto, debes saber que la mayoría de los hackeos no ocurren debido a una vulnerabilidad en el código, sino debido a errores bruscos en el uso del software. Lea lo que debe saber un buen desarrollador de WordPress para entender lo que debe aprender para utilizar WordPress correctamente.
Contraseñas
1. No utilices contraseñas débiles
Cualquier contraseña debe contener más de 16 caracteres aleatorios, incluidos caracteres especiales. Los piratas informáticos tienen listas de frases de uso común y las utilizan en ataques de fuerza bruta. Pueden acceder fácilmente a tu panel de administración, en caso de que tu contraseña no sea una cadena aleatoria. Nunca, nunca uses nombres o palabras en tu contraseña.
2. No compartas contraseñas con terceros
Ni siquiera con desarrolladores. Si necesitas que te hagan algún trabajo, crea para ellos una cuenta aparte. Y cambia siempre la contraseña de esa cuenta después de que hayan realizado tareas.
3. Guarda las contraseñas en un lugar seguro
Escribirlas en papel es una mala idea. Almacenarlas en servicios en línea también puede ser una mala idea. El mejor caso es utilizar una aplicación offline. Hay muchos programas que permiten almacenar contraseñas de forma segura. Por ejemplo, nuestra agencia para guardar todas las credenciales, incluidas las de los clientes, utiliza KeePassXC.
4. No compartas contraseñas a través de canales inseguros
Hazlo a través de canales seguros o cambia la contraseña poco después de compartirla. Incluso si necesitas compartir una contraseña con tu cliente, pídele que la cambie después de recibirla. Slack o los canales de mensajería no son adecuados para este objetivo.
Un canal seguro no significa fuera de línea. Puede tratarse de varios servicios, que proporcionan un enlace de un solo uso, o incluso de un proveedor de correo, como Proton, que proporciona correos electrónicos protegidos con contraseña.
Temas y plugins no verificados
Es el error más común de los principiantes. Ven cuántas opciones hay para personalizar un sitio web y empiezan a instalar todos los plugins y a probar todos los temas que se pueden encontrar. Normalmente, prefieren los gratuitos o nulled (pirateados). La mayoría de estos plugins CONTIENEN virus o vulnerabilidades, es el precio de la accesibilidad.
Si hablamos de plugins gratuitos, puede proteger su WordPress descargando plugins SÓLO del repositorio oficial de WordPress. O desde el elemento Plugins integrado en el menú de administración de WordPress, que es lo mismo. Comprueba también el número de instalaciones activas, que debe ser superior a 100. Y presta atención a la fecha de la última actualización, que debe ser inferior a un año.
Si hablamos de plugins Pro de pago, asegúrate de que estás comprando en una web oficial, y que hay reseñas independientes que confirman la calidad del plugin. Por supuesto, no de las palabras en su sitio web, sino de otros recursos.
Verificar las cosas antes de instalarlas es una habilidad muy importante. Un tema o plugin defectuoso no sólo hace que tu sitio web sea inseguro, sino que también lo ralentiza.
5 Consejos Pro para asegurar WordPress
1. Cambia tu url de login y añade un captcha
La fuerza bruta de las credenciales de inicio de sesión es la práctica más frecuente de los hackers. Envían cientos de peticiones a su sitio web a través de la página de inicio de sesión. Incluso si usted tiene una contraseña segura todavía crea carga adicional a su sitio web. Además, si eres un desarrollador, no puedes garantizar que el propietario o sus editores no utilicen contraseñas débiles. Este paso será una capa extra que protegerá las cuentas de administrador.
Para proteger WordPress de la fuerza bruta, utilizamos el plugin WPS Hide Login para cambiar la url de inicio de sesión. Se puede hacer fácilmente, y además, no cambiará la url de admin para los usuarios autorizados. Así que sólo bloquea wp-admin y wp-login.php de usuarios no autorizados, editores y administradores deben visitar una nueva url para iniciar sesión, y luego puede utilizar ordinario wp-admin para acceder al panel de administración.
Puedes utilizar el plugin hCaptcha o Simple Google Captcha para añadir un captcha a la página de inicio de sesión. Ambos funcionan bien con el plugin anterior y añaden un captcha a través de ganchos de código. Lo que significa que funcionarán con cualquier URL de inicio de sesión personalizada. Recomendamos usar el plugin hCaptcha, ya que el servicio respeta la privacidad del usuario, a diferencia de Google Captcha.
Ambos plugins añaden el código captcha pero no te dan de alta una cuenta de servicio. Debes registrarte y obtener las credenciales de hCaptcha.com o Google ReCaptcha, dependiendo del plugin elegido.
2. Inhabilitar la API REST para usuarios no autorizados
La API REST permite obtener una lista de nombres de usuario sin problemas. Los hackers seguirán necesitando una contraseña, pero bueno, hagámosles la vida aún peor. Además, incluso los nombres (nombres de usuario) de los editores de su sitio web puede ser una parte de la información privada, ¿cuál es el objetivo de compartir con todo el mundo? La API REST se utiliza en WordPress, por ejemplo, por el editor Gutenberg (y diferentes plugins), por lo que deshabilitarla por completo romperá el trabajo de un sitio web de WordPress.
El punto medio es deshabilitar la API REST para usuarios no autorizados. No creará ningún problema para los editores y administradores autorizados pero asegurará WordPress contra la filtración de nombres de usuario a terceros.
Usamos el plugin Disable REST API para este objetivo, y por defecto, está configurado para deshabilitar sólo usuarios no autorizados, así que puedes simplemente habilitar el plugin y no hacer ningún paso extra.
3. Desactivar la navegación por directorios
La navegación por directorios es una función insegura, que permite ver una lista de archivos en una carpeta de petición a través del navegador, en caso de que falte el archivo 'index.php'. Para encontrar vulnerabilidades en sus plugins y temas, los hackers deben conocer su estructura de archivos.
WordPress tiene el index. php para todas las carpetas básicas, como /wp-content/, /wp-content/plugins/, y /wp-content/themes/, pero no puede garantizar que todos los desarrolladores de plugins o temas hagan lo mismo. Para ello, debes asegurarte de que tu servidor web no permite la navegación por directorios.
Intente visitar YOUR_DOMAIN/wp-includes/ en su navegador. Si ves el mensaje 'Not Found', significa que tu servidor ya no lo permite, puedes omitir este punto. En caso de que vea una lista de archivos, deberá realizar acciones adicionales para desactivar la navegación por directorios.
Para hacer esto, necesitamos modificar el archivo .htaccess. No recomiendo editar este archivo a través de FTP, como muchos otros. Debido al hecho de que este archivo es recreado regularmente por muchos plugins. Por ejemplo, todos los plugins de caché o similares. Esto significa que su cambio muy probablemente se perderá después de algún tiempo. Podemos añadir nuestra modificación de forma permanente con el siguiente fragmento de código, que puede añadir a su functions.php:
add_filter('mod_rewrite_rules', function ($rules) {
return $rules . "\n" .
"#Disable directory browsing\n" .
"Options -Indexes\n";
});
Luego visite la página Configuración-Permalinks en su panel de administración, esto forzará a WordPress a recrear el archivo .htaccess inmediatamente. Después, puede visitar YOUR_DOMAIN/wp-includes/ de nuevo para asegurarse de que ahora muestra el mensaje 404 (lo cual es bueno).
4. Denegar el acceso a la carpeta git
Omite este paso en caso de que utilices un hosting sencillo o hayas subido el sitio web manualmente, sin GIT.
Muchos desarrolladores utilizan GIT, que es una herramienta maravillosa. Usar GIT en producción también es una buena idea, pero en este caso debes deshabilitar el acceso a la carpeta .git a través de un navegador. De lo contrario, utilizando el archivo .git/HEAD podrán recrear todo un árbol de commits y obtener el código fuente de tu sitio web.
Para ello, necesitas bloquear todas las /.git/* peticiones. Puedes ponerte en contacto con el administrador de tu sistema o con tu proveedor de hosting. En caso de que tengas suficientes conocimientos y tu servidor utilice NGINX, entonces puedes conseguirlo añadiendo el siguiente código (añádelo al archivo de configuración NGINX de tu sitio web)
# deny access to all special files and folders, like .git, .htaccess
location ~ /\. {
deny all;
}
No olvide reiniciar NGINX después.
5. Denegar el acceso al archivo xmlrpc.php
XML-RPC es una función antigua de WordPress. La mayoría de los sitios web no la usan, y existe sólo por compatibilidad con software antiguo. Esta característica permite interactuar con su sitio web directamente, sin necesidad de abrirlo en un navegador. Lo malo es que los hackers pueden hacer fuerza bruta con las contraseñas utilizando esta función, porque incluso si has cambiado la url de acceso y añadido un captcha en los pasos anteriores, esta función todavía les da una opción para comprobar las contraseñas.
Para denegar el acceso al archivo, puede ponerse en contacto con el administrador del sistema o con el proveedor de alojamiento. Si tiene suficientes habilidades, a continuación le proporcionamos fragmentos que lo harán:
NGINX
Si su servidor utiliza NGINX, puede acceder a él añadiendo el siguiente código (añádalo al archivo de configuración NGINX de su sitio web):
# wordpress xmlrpc
location /xmlrpc.php {
deny all;
}
No olvide reiniciar NGINX después.
DirectAdmin
Si su servidor tiene el panel de control DirectAdmin, puede conectarse a su servidor por SSH y lograr el objetivo ejecutando los siguientes comandos;
// 1. create the custom folder in the directadmin config
cd /usr/local/directadmin/data/templates
mkdir custom/; cd custom
// 2. create the necessary files in the folder and setup rights
touch nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
touch nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
chmod 644 nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
chmod 644 nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 3. enter the edit mode for the new (created) config
nano nginx_server.conf.CUSTOM.4.post
// and and the content below to the file
// this is the rule that will lock the xmlrcp file
location =/xmlrpc.php
{
deny all;
}
// 4. copy the main config to the others
cp -p nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
cp -p nginx_server_secure.conf.CUSTOM.4.post nginx_server_secure_sub.conf.CUSTOM.4.post
cp -p nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 5. make the build
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Conclusiones
Hemos revisado los 5 pasos más importantes para asegurar WordPress contra hackeos. De hecho, los pasos 3-5 pueden ser realizados por un administrador del sistema (o proveedor de alojamiento) sólo una vez y funcionarán para todos los sitios web de su cuenta. Ya que los has hecho, puedes estar seguro de que tienes un muy buen nivel de protección, y puedes no comprar plugins de seguridad, que a menudo son pesados y ralentizan un sitio web.
Thank you for reading! to our monthly newsletter to stay updated on the latest WordPress news and useful tips.
Stuck with development or facing an issue?
WPLake offers affordable on-demand website development and design.
No matter the size of your project - contact us now, and we'll get it done for you!
Preguntas frecuentes Pon a prueba tus conocimientos
Modo FAQ
/
Modo de aprendizaje
- ¿Cómo puedo compartir contraseñas de forma segura con terceros desarrolladores?
Cree cuentas separadas para los desarrolladores y cambie la contraseña una vez finalizadas las tareas para mantener la seguridad.
- ¿Por qué es esencial verificar los temas y plugins antes de instalarlos?
La verificación de temas y plugins garantiza que proceden de fuentes fiables, lo que reduce el riesgo de vulnerabilidades y fallos de seguridad.
- ¿Qué medidas puedo tomar para evitar ataques de fuerza bruta en mi página de inicio de sesión de WordPress?
Cambiar la URL de inicio de sesión y añadir un captcha a la página de inicio de sesión utilizando plugins como WPS Hide Login y hCaptcha puede disuadir los ataques de fuerza bruta.
- ¿Cómo puedo proteger la información confidencial, como los nombres de usuario, para evitar que usuarios no autorizados accedan a ella?
La desactivación de la API REST para usuarios no autorizados impide el acceso a los nombres de usuario a la vez que mantiene la funcionalidad para los usuarios autorizados.
- ¿Qué medidas puedo tomar para proteger el código fuente de mi sitio web al utilizar GIT en producción?
Denegar el acceso a la carpeta .git mediante la configuración del servidor garantiza la seguridad del código fuente.
- ¿Cómo puedo mejorar aún más la seguridad de WordPress denegando el acceso a archivos específicos?
Al denegar el acceso a archivos como xmlrpc.php se evitan posibles puntos de entrada para los atacantes, lo que refuerza la seguridad general del sitio web.