En el post anterior tocamos algo de WPO para WordPress y esta semana toca seguridad. Concretamente, vamos a ver cómo protegernos del SPAM en comentarios, formularios y zonas de registro.
Voy a intentar explicar en un solo post todo lo que necesitas saber para proteger tu WordPress contra el spam, tengas el tipo de instalación que tengas, desde un blog normal hasta un sitio web muy social como un foro.
Este post complementará perfectamente otros artñiculos de seguridad para WordPress que he publicado, como la guía de seguridad para WordPress y la de desinfección de instalaciones WordPress hackeadas.
Este post no va a ser una guía paso a paso, sino que voy a intentar crear secciones más o menos independientes donde explico cómo proteger cada parte de WordPress de la forma más eficiente según mi criterio y experiencia.
En algunos casos, también explicaré cómo combinar plugins y métodos anti-spam para conseguir mayor efectividad, con poca molestia para el usuario, y al mismo tiempo un consumo de recursos mínimo tanto en el hosting como en el navegador web del visitante.
Vamos a distinguir dos tipos de SPAM: por un lado el automático (el 99,99% del SPAM de Internet) y por otro lado el manual (lo restante).
La mayoría del SPAM de Internet es totalmente automático y, por esta razón, podemos utilizar sistemas automatizados que detecten patrones o IPs para bloquearlo.
En este post voy a hablar sobre todo del SPAM automático, ya que el manual tampoco hay una forma “específica” de pararlo. El motivo es que un spammer manual es un visitante más que puede usar proxies, puede rellenar captchas, etc. Sin embargo, también es capaz de causar mucha menos molestia dada la limitación de la persona contra el bot.
No me voy a liar más. Vamos con el tema 🙂
¿Quieres
recibir mis articulos?
No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.
Anti-Spam en los comentarios de WordPress
Pues vamos a empezar por el principio, por lo más “spammeable” y al mismo tiempo lo más fácil de proteger.
Como digo siempre, el sistema de comentarios de WordPress es un sistema muy antiguo y que tiene algunas carencias importantes. Entre ellas, que no trae nada para protegerse del SPAM.
Aunque con la instalación por defecto de WordPress viene Akismet, hace tiempo que dejó de competir de forma eficiente con otros plugins y técnicas que existen en el mercado para bloquear SPAM.
Aunque muchos comentan que el mejor sistema anti-spam para los comentarios de WordPress es no aprobar los comentarios SPAM, esto es inviable cuando trabajamos con instalaciones gigantes con muchos comentarios diarios y más teniendo en cuenta que el sistema de moderación del sistema de comentarios nativo de WordPress es bastante limitado.
Entonces, ¿cómo podemos proteger los comentarios nativos de WordPress fácilmente?
Pues con el plugin Honeypot Antispam que tenemos en Raiola Networks y que puedes utilizar tanto si eres cliente de Raiola Networks como si no lo eres.
Es un plugin que utiliza la técnica honeypot para proteger del spam automatico sin intrusiones y sin molestar al visitante.
Con honeypot colocamos un campo oculto en el código de los formularios. Los visitantes no lo ven, pero los bots sí e intentan rellenarlo. Cuando lo rellenan y envían el formulario, automáticamente son clasificados como bots.
Como ves, honeypot es MUY eficiente, pero también es una técnica que únicamente sirve para pelear contra el spam automático. Es inútil contra el spam manual.
Con el plugin Honeypot Anti-Spam simplemente debemos instalar el plugin y olvidarnos, ya que no requiere ninguna configuración y funciona de forma totalmente automática.
¿Quieres descargar Honeypot AntiSpam? Pues aquí lo tienes: https://wordpress.org/plugins/honeypot-antispam/
Anti-Spam en comentarios de Disqus, wpDisquz, etc.
Como ya he dicho varias veces e incluso le he dedicado un post, no soy muy amigo de Disqus y tampoco es que haya utilizado muchos sistemas complementarios para mejorar de golpe los comentarios de WordPress. Simplemente quiero comentar esto, ya que creo que puede surgir la pregunta.
Cuando usamos sistemas como Disqus Comment System o wpDisquz, que sustituyen por completo el sistema de comentarios de WordPress, normalmente estos sistemas ya añaden su propio sistema anti-spam basado en distintas técnicas.
Lo que debemos de tener en cuenta es que, en algunos casos, en Disqus Comment System sobre WordPress pueden llegar a subirnos SPAM “por detrás” directamente a WordPress, aunque tengamos el sistema de comentarios de Disqus por delante.
Por esta razón, aunque tengamos un sistema de comentarios externo (Disqus, wpDisquz, etc.) es recomendable tener también instalado un sistema anti-spam complementario para los comentarios nativos como, por ejemplo, Honeypot Anti-spam: https://wordpress.org/plugins/honeypot-antispam/
Anti-spam para Contact Form 7
Contact Form 7 es el plugin de formularios de contacto más utilizado en WordPress, con más de 5 millones de instalaciones activas.
El plugin Contact Form 7 no es lo más avanzado que existe y su interfaz tampoco es perfecta, por no hablar de sus funcionalidades (aunque son muy ampliables mediante plugins).
¿Cómo podemos proteger Contact Form 7 contra el SPAM? Pues existen distintas opciones y métodos, pero vamos a elegir una.
Otra vez volvemos a confiar en la técnica honeypot, aunque esta vez utilizando el plugin Honeypot for Contact Form 7: https://wordpress.org/plugins/contact-form-7-honeypot/
Los formularios de contacto suelen ser más atacados que los formularios de comentarios, por lo que podemos requerir algún tipo de método adicional. Podemos complementar Honeypot for Contact Form 7 con Google Recatpcha V3, otro método anti-spam totalmente transparente para el usuario.
En Contact Form 7 podemos implementar Google Recatpcha V3 con el plugin Invisible reCaptcha for WordPress: https://wordpress.org/plugins/invisible-recaptcha/
En el siguiente vídeo puedes ver cómo configurar el plugin Invisible reCaptcha for WordPress:
Evidentemente, existen muchas alternativas para proteger Contact Form 7 del spam, pero creo que el método honeypot o incluso la combinación de honeypot + recaptcha v3 son los métodos más eficientes.
Anti-spam para Gravity Forms
Si me habéis leído más veces en este blog ya sabréis que uso Gravity Forms para todo. Se puede decir que soy fan de Gravity Forms.
De hecho, ya he hablado de cómo proteger del SPAM los formularios de Gravity Forms cuando hablé de cómo crear un hosting de imágenes con WordPress y también de cómo crear un sitio de membresía con Gravity Forms, WordPress y Elementor.
Gravity Forms lleva integrada la opción de proteger los formularios de contacto usando honeypot específicamente para cada formulario por separado:
Si queremos complementar el honeypot de Gravity Forms, al igual que en el caso de Contact Form 7, podemos hacerlo mediante Google Recaptcha V3, que es totalmente invisible para el visitante.
En el caso de Gravity Forms, tiene soporte nativo para Google Recaptcha V2, pero no para V3. Si queremos configurar Google Recaptcha V3 (el invisible), debemos usar el plugin Invisible reCaptcha addon for Gravity Forms: https://wordpress.org/plugins/gf-google-captcha/
Anti-spam para Elementor Forms
Los formularios de Elementor han tenido bastante aceptación y muchos usuarios que utilizan Elementor se han puesto a usarlos.
Incluso yo, que soy fan de Gravity Forms, los he utilizado en algunos proyectos debido a que ya están integrados y no hay que hacer nada.
Elementor es compatible tanto con Google Recaptcha V2 como Google Recaptcha V3:
Pero esto no es todo, ya que Elementor Forms también es compatible con honeypot y nos permite añadir un campo honeypot a nuestros formularios.
Proteger formularios de registro y acceso
Otro de los puntos que debemos proteger de los bots y de los spammers son los formularios de registro y acceso. Esto debemos tenerlo en cuenta sobretodo en webs muy sociales como un sitio con BuddyPress, un foro con wpForo, una plataforma de membresía, etc., ya que en esas webs los formularios de login y registro suelen estar mucho más expuestos.
Lo ideal es poder proteger estos formularios sin necesidad de utilizar un captcha intrusivo como tal pero, por otro lado, en estos casos honeypot no suele ser efectivo.
¿Qué podemos hacer entonces? Pues usar Google Recaptcha V3 para protegernos de forma efectiva sin molestar a los visitantes, aunque también dependemos de la compatibilidad del plugin en cuestión (voy a poner ejemplos).
Voy a empezar por la peor de las circunstancias: el plugin con el que se generan los formularios de acceso no es compatible con Google Recaptcha V3. Esto ocurre, por ejemplo, con wpForo, de modo que tendremos que usar Google Recaptcha V2 al usar formularios muy específicos:
Si queremos proteger el wp-admin y wp-login.php con Google Recaptcha V3 y, además, intentar proteger algunos formularios de login protegidos como los creados con Elementor, podemos usar alguno de estos plugins:
- Invisible reCaptcha for WordPress: https://wordpress.org/plugins/invisible-recaptcha/
- Advanced noCaptcha & Invisible Captcha (v2 &v3): https://wordpress.org/plugins/advanced-nocaptcha-recaptcha/
En cualquiera de los dos casos, podemos proteger los formularios de registro, acceso y recuperación de contraseña. Este ejemplo es con el plugin Invisible reCaptcha for WordPress:
Y en este vídeo puedes ver cómo funciona el plugin Advanced noCaptcha & Invisible Captcha (v2 & v3):
Por último, como digo siempre, debemos tener en cuenta que no debemos activar los registros de usuarios en sitios web que no lo necesiten.
Esto es una opción que encontramos en el dashboard de WordPress, en “Ajustes” y después en “General”, y solo es necesario activarla en webs sociales o que requieran registro, como tiendas online WooCommerce.
Proteger lead magnets y captadores de emails
Es algo complejo establecer una regla general para esto, ya que cada plugin de lead magnet funciona de una forma completamente diferente.
Lo ideal es que cada plugin traiga su protección contra el spam. Sin embargo en muchos casos no es así, ya que son plugins para captar leads que se centran en los popups o en los banners y la parte de campos esta “infravalorada”.
Yo utilizo Gravity Forms para la captación de leads en todos mis proyectos, ya que me permite conectarlo con el servicio de automatización o email marketing que yo quiero siempre.
Algunos de los plugins más conocidos en este terreno, como Thrive Leads o Bloom, nos permiten implementar el doble opt-in para protegernos del spam, aunque este método en algunos casos puede no ser lo suficientemente eficiente.
En cualquier caso, como he dicho al principio, no existe una regla estándar para esto y dependemos de la compatibilidad del plugin en cuestión, aunque lo ideal es que sea compatible con Google Recaptcha V3.
Protección anti-spam en modo restrictivo
Hay algo que podemos hacer si vemos que todo lo anterior no funciona bien: bloquear directamente en el servidor / hosting con el firewall o con CloudFlare como proxy inverso.
Esto no siempre es posible y es algo muy circunstancial, pero en algunos casos se puede realizar el bloqueo de raíz, ya que la mayoría del spam suele venir de los mismos puntos geográficos del planeta.
En este vídeo muestro como utilizar el firewall de CloudFlare:
Precisamente, recomiendo usar el firewall de CloudFlare en caso de que el spam sea muy molesto porque así los spammers no llegan a entrar en nuestro servidor y no consumen recursos. Lo que se puede conseguir con esta metodología a nivel eficiencia y recursos en foros es muy notable:
Al bloquear este tipo de cosas debemos saber lo que hacemos ya que, si no añadimos las exclusiones correspondientes, podemos incluso llegar a bloquear al bot de Google y dañar el SEO de nuestra web.
17 Responses
Xenial artigo, como sempre Álvaro, parabéns! O plugin de Honeypot Anti-Spam, por certo, xa é un fixo nas instalacións que fago. Menos mal, porque o que fixeron co agora chamado Titan foi un crime hahaha.
Hola Anxo, moitas grazas, foi unha necesidade, xa que Titan “fodeunos” a todos… neste caso, a ventaxa do software libre e a comunidade, foi precisamente o coitelo que se lle clavou…
O plugin Honeypot Anti-Spam esta tendo boa aceptación, e esperamos meterlle mais funcionalidades.
Hola Álvaro
En la página del plugin Honeypot Antispam (https://wordpress.org/plugins/honeypot-antispam/):
¿Puedo usar Honeypot Anti-Spam con Disqus o wpDisquz?
No, Honeypot Anti-Spam no es compatible con otros sistemas de comentarios que no sean los de WordPress.
En éste post:
“Por esta razón, aunque tengamos un sistema de comentarios externo (Disqus, wpDisquz, etc.) es recomendable tener también instalado un sistema anti-spam complementario para los comentarios nativos como, por ejemplo, Honeypot Anti-spam: https://wordpress.org/plugins/honeypot-antispam/”
La pregunta es si es compatible o no. O a qué se deben las diferentes y contrarias indicaciones.
Un saludo
Hola Joaquin, lo de la pagina del plugin lo escribí yo también.
Te cuento intentando explicarme mejor… lo que quise decir es que Honeypot Anti-Spam NO protege del SPAM en Disqus, pero si lo instalas en un WordPress con Disqus, no te va a dar problemas.
De hecho, yo recomiendo en este post instalarlo aunque tengamos un sistema de comentarios externo como Disqus, dado que en algunos casos nos pueden colar spam por el sistema nativo de WordPress, aunque tengamos otro instalado, a mi me ha pasado.
Creo que me he explicado mejor.
Hola Álvaro,
Después de leer el artículo se me presentan varias dudas que, si no es mucha molestia, agradecería que me aclararas. Te las expongo a continuación:
1- En el apartado “Anti-Spam en comentarios de Disqus, wpDisquz, etc.” ¿Qué quieres decir cuando hablas de que nos pueden colar SPAM “por detras” en wordpress?
2- Estoy montando un sitio en wordpress usando el tema OceanWP con WPForms que lo trae por defecto. ¿Vuestro plugin Honeypot Anti-Spam es compatible con WPForms?
3- ¿Es compatible usar vuestro plugin Honeypot Anti-Spam con Akismet? O lo ves algo innecesario.
4- En otro artículo sobre seguridad en wordpress recomendabas (y con gran acierto) cambiar la ruta del login y limitar los intentos de logeo. ¿Sería excesivo añadir alguno de los plugins de reCaptcha que indicas más arriba (Invisible reCaptcha for WordPress o Advanced noCaptcha & Invisible Captcha (v2 &v3) para evitar ataques en el login?
Disculpa si mis ansias de conocimiento te abrumaron pero cuando se junta la falta de conocimiento con las ganas de aprender ya se sabe 😀
PD: Contraté el servicio de hospedaje hace un par de semanas, si llego a conocer tu web antes habría aprovechado el descuento que ofreces para Raiola, básicamente es el mismo precio pero vuestras condiciones son mucho mejores! Lo tendré en cuenta cuando tenga que renovar.
Hola Guillermo, voy por partes:
1 – Pues que Disqus por ejemplo, pone su interfaz por delante del formulario de comentarios de WordPress, esta interfaz de Disqus es todo Javascript, y se carga después de que se ejecute el codigo que marca donde van a cargar los comentarios de WP. Esto hace que algunos bots puedan omitir la carga del JS de Disqus y puede llegar a entrar SPAM “por detras”, al quedar el form al descubierto o parcialmente funcional.
2 – Pues creo que no, la verdad es que nunca he utilizado WPForms. Pero WPForms tiene su propio antispam honeypot integrado por lo que he visto: https://wpforms.com/features/spam-protection/
3 – Si, son compatibles, pero precisamente lo que intentamos evitar con Honeypot Anti-Spam es que la gente no tenga que instalar Akismet, ya que es un plugin poco eficiente y que consume demasiados recursos para la tarea que hace.
Akismet intenta competir en el terreno de las blacklist, pero sin poder competir con los grandes como CleanTalk, porque no tiene suficiente base de datos en esa blacklist.
4 – Si es un WordPress normal, es decir, que no permite registro, yo lo dejaria sin captcha, no lo veo necesario si ya has cambiado la ruta de login y no es una ruta publica (como en webs sociales, que es publica para los usuarios).
Estoy aquí para lo que necesites 🙂
hola alvaro que diferencia hay en poner esto y clean talk yo uso clean talk y me va muy bien y tiene firewall eso no hace que consuma menos recursos el servidor???
Hola Marcos, son métodos diferentes.
CleanTalk es para casos mas “sociales” donde el registro de usuarios puede tocarte las narices mucho, mientras que Honeypoy es para formularios de contacto y formularios de comentarios que no requieren registro.
¿Se pueden mezclar? Si, claro, yo los mezclo, pero si pones un honeypot en un sitio web con foro wpForo o bbPress, los spammers se van a reír de ti directamente y no vas a dar borrado spam, para casos así se necesita CleanTalk u otro sistema que tenga base de datos de spammers.
Sin embargo, en un blog normal donde no se necesita ningún sistema avanzado, honeypot siempre va a ser mas simple y va a consumir menos recursos, ya que casi no hay spammers manuales como en el caso de los foros, sobretodo si tienes el campo de link eliminado en los comentarios.
Hola, para poner el Captcha con elementor se necesita solo la version Elementor PRO, verdad? No he encontrado ningun Captcha para Elementor
Hola Mauro, claro, es que el widget de formularios de Elementor solo va incluido en Elementor Pro y es a lo que va ligado el captcha y el recaptcha.
Hola Álvaro, gracias por tan buen artículo.
Una pregunta, yo tengo instalado Akismet en varias instalaciones pero desde hace un tiempo, vengo leyendo de su ineficacia y de los recursos que consume en exceso.
Intentaré probar las soluciones que recomiendas, sin embargo, me quedaría intranquilo de saber que cuando borre Akismet, se quedarán registros y configuraciones de éste en la base de datos: ¿alguna recomendación para ubicar dichos registros y eliminarlos? ¿Algún plugin o tutorial que recomiendes para ello?
PD. No soy tan ‘diestro’ para eso de entrar directamente a la base de datos y examinar.
Gracias de antemano por tu respuesta.
Hola Rofolfo, pues…justo el post que voy a publicar el Miercoles de la semana que viene va sobre eso, sobre como limpiar las opciones que dejan los plugins en la DB de WordPress.
Excelente, estaré al tanto. Gracias por responder Álvaro, saludos.
hola alavaro como as consegido que tener google en permitir en cloudflare???
Hola Marcos, no entiendo tu pregunta. Si me puedes especificar algo mas te lo agradecería.
Quien quiera activar el honeypot en los Elementor Forms a veces pone el campo como “Señuelo”
Me he vuelto loco buscándolo, no sé si lo ha traducido wpml o es que lo llama así.
Saludos!
Hola Miguel, buen apunte, las traducciones de Elementor no son muy acertadas en muchos casos…
Gracias por la aportación 😉