Wordpress

Protege tu sitio de WordPress contra los bots malos

bots

El auto-alojamiento de su sitio web de WordPress puede proporcionarle una gran libertad en la forma de configurar y ejecutar su sitio. Desafortunadamente, esa libertad viene con un costo – tienes que asegurarte de que tu sitio esté protegido. Tendrás que mantener tu sitio a salvo de hackers, spam de comentarios y ataques de fuerza bruta. ¿Quizás has notado que los bots malos están buscando temas y plugins en tu sitio web? Están buscando vulnerabilidades para explotar. Puede que no las haya detectado o quizás tenga suerte de que su sitio web esté detrás de un cortafuegos de aplicación web. De cualquier manera, deberías considerar hacer todo lo que puedas para proteger tu sitio de WordPress o arriesgarte a tener tiempos de inactividad prolongados y a la ira de tu anfitrión web.

Recientemente he tenido que lidiar con varios ataques a algunos sitios de clientes. Este post comparte algunas de las cosas que estoy usando para evitar que estas personas dañen esos sitios o ralenticen los servidores en los que se alojan esos sitios.

¿Por qué necesitas proteger tu sitio de WordPress?

Hay diferentes acciones como su sitio web es atacado, las más comunes son:

Ataques de fuerza bruta en su página de inicio de sesión – Los bots intentan diferentes inicios de sesión y contraseñas para acceder a su sitio web.
Spam de comentarios – Como su nombre indica, los bots intentan publicar comentarios de spam, ¡incluso en los blogs en los que la publicación de comentarios está desactivada!
Olfatear temas y plugins inseguros: un robot intenta acceder a varios archivos de su sitio web.
Indexación de tu blog: un robot comprueba todas tus páginas como el robot de Google. Este tipo de bots suelen ser operados por empresas para recopilar tus datos/contenidos para estadísticas, perfiles de enlaces, etc.

Todos estos ataques generan a menudo mucha más carga en su servidor web que sus visitantes habituales. El problema con WordPress, o más precisamente el código PHP que se ejecuta para cada vista de página, es que utiliza la memoria (RAM). Cada servidor web tiene una memoria limitada que es compartida por todos los sitios que se ejecutan en él. Los bots malos pueden maximizar la memoria del servidor en unos pocos minutos. Antes de que te des cuenta, tu sitio está caído así como cualquier otro sitio en ese servidor. La ventaja es limitar el número de solicitudes en los archivos PHP y mantener los bots no deseados fuera de su sitio web.
Instala WP Super Cache y usa mod_rewrite para el cacheo de archivos

La forma más fácil de limitar la ejecución de los scripts PHP es usar un plugin de caché. Un plugin de caché crea una copia para cada página o mensaje solicitado y sirve un archivo en caché en lugar de recrear una página de nuevo. Estoy usando WP Super Cache para todos mis sitios web de WordPress, porque es un plugin de WordPress bien mantenido que es muy fácil de instalar. Si entras en la página de configuración de WP Super Cache, comprueba en la pestaña avanzada las tres opciones de cacheo: mod_rewrite, PHP y legacy caching. No uses la opción PHP, ya que hay un código PHP involucrado cada vez que se crea o se solicita un cache de archivos. La opción mod_rewrite es mucho mejor porque después de que se crea la caché de archivos, no se requiere ningún código PHP para servir la página almacenada en la caché o el mensaje al cliente o al navegador.
Mantener esos malos (y estúpidos) bots fuera

Como usar un cortafuegos de aplicaciones web es mucho mejor bloquear los bots malos antes de que puedan acceder a tu página web o a tus archivos PHP. Puedes hacer esto usando la Lista Negra 5G, que ofrece algunas reglas inteligentes que necesitas copiar/pegar en el archivo .htaccess de tu sitio web. Estas reglas detectarán y bloquearán los bots malos por su nombre de agente de usuario o por cadenas de consulta maliciosas y por las URL slugs. No es una protección al 100% para tu sitio de WordPress, pero te ayudará. Si utilizas la Lista Negra 5G junto con WP Super Cache y mod_write para el cacheo de archivos, necesitas eliminar o deshabilitar esta regla:

RedirectMatch 403 (\,|//|)+|/\,/|{0}|(/(|…|+++||)

¡De lo contrario, romperá su sitio web y proporcionará un error 403 para cada subpágina! Otra forma de mantener los bots malos y los bots de spam fuera de tu sitio web es usando el plugin de WordPress AVH First Defense Against Spam. Este plugin no sólo es efectivo para combatir el spam, sino que también es una gran manera de bloquear los bots malos en general antes de que puedan «tocar» tu sitio web. Este plugin está usando las listas negras de IP de Stop Forum Spam, Spamhaus y Project Honey Pot. La configuración es un poco compleja porque necesitas dos claves de API que están disponibles gratuitamente para Stop Forum Spam y Honey Pot.

Proteja su sitio contra los ataques de fuerza bruta (login)

La página de inicio de sesión es también un script PHP que necesita memoria para la ejecución. Estoy usando Protect que es en realidad un módulo de JetPack, porque es un plugin que depende también de una lista negra basada en la nube. Mientras que muchos plugins basados en CAPTCHA o JavaScript todavía dan acceso al script PHP de inicio de sesión, Brute Protect abandonará un bot antes de que se ejecute la mayor parte del código PHP en WordPress.

Ocultar la página wp-login.php y el directorio wp-admin

Otro método efectivo es el plugin WP Cerber. Al usar este plugin es posible cambiar la URL de inicio de sesión de WordPress a lo que quieras. Además de esta característica, también es posible «esconder» el directorio wp-admin. El plugin funciona de múltiples maneras: La URL de inicio de sesión no estándar no funciona y la dirección IP se bloquea después de un par de intentos de pirateo. WP Cerber es un gran plugin para la mayoría de los sitios web con un grupo conocido de usuarios.

Muestra un simple error 404 – NOT FOUND usando .htaccess

La última protección para tu sitio de WordPress es necesaria debido a alguna regla general de mod_rewrite que existe para (casi) todas las instalaciones de WordPress. Se trata de estas dos condiciones de mod_rewrite en tu archivo .htaccess, que son creadas por WordPress, si configuras enlaces permanentes amigables con SEO.

Condición para comprobar si un archivo no existe

RewriteCond %{REQUEST_FILENAME} !-f

Condición para comprobar si un directorio no existe

RewriteCond %{REQUEST_FILENAME} !-d

Estas reglas de mod_rewrite no comprueban si un archivo solicitado pertenece a un post o a una página. Si un mal bot está husmeando en tu sitio por algunos archivos (php, css, txt, js, png…) y el archivo no existe, WordPress creará una bonita página 404. Esta página no tiene un caché de archivos y necesita todas las consultas a la base de datos y el código PHP. ¡Imagina cuánta memoria se usa, si un robot intenta acceder a 100 archivos perdidos en un solo minuto! Utilizo las siguientes reglas en mi archivo .htaccess (pégalo encima del código predeterminado de WordPress) para evitar la creación de páginas 404 no deseadas por WordPress:


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} …y el resto de la gente de la ciudad…
RewriteRule.* – [R=404]

Es posible que esta condición y regla de mod_rewrite no funcione al 100% en su situación específica. Siempre es mejor probar estas modificaciones críticas en el lugar de prueba primero. Lo que he aprendido de estos ataques es que es mucho mejor bloquear estos bots por completo. A menudo esto no es posible, porque la dirección IP de cada robot debe estar en la lista negra antes de que puedas filtrarlo. Revise sus archivos de registro con frecuencia y tome medidas si cree que alguna actividad en su sitio web no es normal. Se sorprenderá de la cantidad de bots que rastrean su sitio web todos los días. La velocidad del sitio web es esencial en estos días y es importante servir sus páginas rápidamente a sus visitantes (y a Google).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *