Cómo prevenir el spam en el registro

Yo también tenía este problema de registros de spam en mi foro personal, pero ha disminuido bastante. Ahora solo recibo uno o dos, o como máximo (como hoy) cinco al día. Borrar diligentemente las cuentas de spam y añadirlas a las listas de bloqueo parece funcionar. Tengo activada la opción «El personal debe aprobar todas las cuentas de nuevos usuarios antes de que puedan acceder al sitio», lo que coloca a los nuevos usuarios en la útil cola de revisión, de modo que solo toma un momento procesarlos rápidamente. Añadir una pregunta personalizada también ayuda para identificar a los spammers obvios.

En mi foro laboral utilizo el plugin de WordPress wp-discourse y SSO, y tengo un formulario de registro muy largo. De esa manera, casi nunca recibimos registros de spam.

¿Es el nuevo plugin de registro/inicio de sesión una solución para evitar el spam?

¿Puedo saber cómo extraer datos así?

Por curiosidad, ¿cómo pueden pasar el Captcha? ¿Cómo se puede completar el proceso de registro sin resolver el Captcha?

También debes recordar que en tal caso tu propio servidor de correo puede terminar en una lista negra si se distribuye demasiado spam de formularios.

Si el bot utiliza direcciones reales para el registro, esto puede suceder muy rápidamente.
He resuelto esto utilizando un nginx externo como proxy para mi instancia de docker de discourse y monitoreando el archivo de registro con fail2ban, es decir:

/etc/fail2ban/filter.d/nginx-discourse.conf

[Definition]
failregex = ^<HOST>.*"GET /u/account-created HTTP/2.0" 200.*$

/etc/fail2ban/jail.d/defaults-debian.conf

[nginx-discourse]
enabled = true
port = http,https
filter = nginx-discourse
logpath = /var/log/nginx/your.discourse.access.log
bantime = 43200
findtime = 3600
maxretry = 3
banaction = ufw

Este ejemplo significa que si alguien intenta registrarse 3 veces en una hora desde la misma IP, entonces esta IP se bloquea durante 12 horas.
¡Ajusta estos valores para tu propósito y entorno de sistema!

Recibo registros constantes de spam de bots verificados que usan cuentas de Gmail (¡Gmail!), todas de la India. Algunos otros dominios también, pero las cuentas de Gmail son sorprendentes.

¿Qué le ha pasado a Google?

Aquí igual.
Si no publican, son inofensivos. Las nuevas cuentas de usuarios inactivos no son visibles para los visitantes ni para los usuarios regulares, y los perfiles de los usuarios no están indexados; por lo tanto, estas cuentas de spam son básicamente invisibles para todos, excepto para los administradores/moderadores, y se eliminarán automáticamente después de un tiempo gracias a la tarea de limpieza periódica.

Aunque no pueden publicar, hacen algunas cosas aleatorias como consultas de búsqueda,

o aparentemente intentan hackear el sistema de autenticación:

Job exception: Net::SMTPAuthenticationError
(google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request { "error": "invalid_grant", "error_description": "Bad Request" }
(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected