Avisos
Vaciar todo

Recaptcha y Cloudflare no impiden que se registren correos spam

16 Respuestas
3 Usuarios
0 Reactions
39 Visitas
Respuestas: 2647
Famed Member
Topic starter
 

Buenos días, por limitaciones de Recaptcha gratuito en su última actualización, optamos por instalar el plugin de Cloudflare en la página de registro y en los formularios. Sin embargo, algo falla porque se siguen registrando o consultando e-mails de spam con direcciones que no existen y a los cuales el sistema no puede enviar respuesta. Nos aparecen notificaciones del tipo:

Delivery Status Notification (Failure)

No se ha encontrado la dirección
Tu mensaje no se ha entregado a oxxxxxxx8@mail.ru porque no se ha encontrado la dirección o esta no puede recibir correo.

Saludos y gracias por la ayuda

Contenido solo visible a usuarios registrados


 
Respondido : 05/11/2025 6:43 am
Tags del tema
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

Qué limitaciones tiene Recaptcha ? que yo sepa las opciones son las mismas.

El problema es que se estan registrando usuarios ? lo primero seria identificar si es de registro o es de formularios.

 

Un Saludo


 
Respondido : 05/11/2025 3:42 pm
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe,

Debería buscar de nuevo los problemas por los optamos por emplear Cloudfare. De todos modos, no tendríamos problema en usar de nuevo Recapcha. El tema es que con Recaptcha también nos entraba este tipo de spam. Es decir, cualquiera de las herramientas que resulte efectiva nos vendría bien, pero o no acertamos a configurarlas correctamente o no protegen de los registros falsos.

El spam que recibimos nos llega por el formulario de registro. Esto hace que luego el sistema intente responder y mande correos a direcciones inexistentes. Este tema lo tratamos anteriormente en este post, pero en ese caso era en otra web con Joomla. Ahora nos sucede lo mismo con esta web con Wordpress y Woocommerce.

https://www.webempresa.com/foro/joomla-40/como-evitar-que-el-sistema-mande-correos-a-usuarios-fraudulentos/paged/2#post-471304

Saludos y gracias


 
Respondido : 24/11/2025 6:51 am
Argenis
Respuestas: 11780
Illustrious Member Moderator
 

Hola Alceste,

Es complicado el tema, por ejemplo cuando un registro lo llamas falso, quiere decir que es creado por bots? ten en cuenta que algunas veces son las propias personas las que realizan este tipo de acciones, los reCAPTCHA y ajustes que se hacen, son pensando en bots.

Cuando tratamos con spam hecho por personas allí cambia un poco el asunto, es más complicado poder detener esto, es por eso que siempre se utiliza mejor el reCAPTCHA, por qué es el que obliga a completar una acción para poder enviar el formulario.

Cuando hablas de formulario de registro te refieres a este:

https://www.cortinaestor.es/mi-cuenta

Este corresponde al registro de WooCommerce, en este caso puedes usar el plugin de:

https://wordpress.org/plugins/recaptcha-woo

Este agrega el reCAPTCHA a los formularios de registro, inicio de sesión, restablecimiento de contraseña y otros. Tienes conocimiento de como hacer la clave de reCAPTCHA para conectarla? igualmente puedes ver nuestra guía si necesitas refrescar ese conocimiento:

https://www.webempresa.com/blog/captcha-wordpress-formularios.html

Un saludo 🖐️ 


 
Respondido : 24/11/2025 4:17 pm
Respuestas: 2647
Famed Member
Topic starter
 

Hola, el problema es que éste plugin funciona con reCAPTCHA v2, el cual está obsoleto, si no estamos mal informados.

Si no recuerdo mal, antes usábamos el ReCaptcha incluido en WPFORMS. Adjunto imagen. (Ahora usamos el Cloudflare Turnstile.)

image

 

Según la información de WPFORMS: Cloudflare Turnstile es un servicio gratuito similar a CAPTCHA para evitar el spam de formularios y proteger la privacidad de los datos. Ofrece una experiencia fácil de usar al confirmar que los visitantes son humanos reales sin requerir que resuelvan acertijos o preguntas de matemáticas.

Saludos y gracias


 
Respondido : 25/11/2025 9:11 am
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

Ok vamos hacer varias cosas.

.- Instala el siguiente plugin:

-> https://wordpress.org/plugins/emails-verification-for-woocommerce/

Configuración:

  • Block unverified login: ✓ Marcada, Impide que entren si no verifican
  • Login on activation: ✓ Marcada, Los loguea automáticamente al verificar
  • Verify guest users: ☐ Desmarcada No hace falta (solo complica el checkout)
  • Enable token verification on verify guest user: (gris, da igual)Está desactivada porque la anterior está off
  • Verify account for current users: ☐ Desmarcada Si la marcas obligas a TODOS tus clientes antiguos a verificar otra vez
  • Ignore user roles:  Administrator ✓ Marcada Así tú y otros admins no tenéis que verificar nunca
  • Verify the user on password reset: ☐ Desmarcada No hace falta
  • Verify customers as soon as… ☐ Desmarcada No hace falta
  • Unverify, logout and resend… ☐ Desmarcada No hace falta
  • Show account verification info on My Account page: ✓ Marcada (opcional) Para que el cliente vea si está verificado o no
  • Add account verification info widget: ✓ o ☐ (como quieras) Si usas widgets en la sidebar
  • One-time activation link: ✓ Marcada Muy importante: evita que reutilicen el enlace miles de veces
  • Expire time: Pon 48(o 72 si quieres dar más margen)
  • Expire time unit: Hours Así el enlace caduca en 48-72 horas
  • Ve a la pestaña “Advanced” (arriba, al lado de General).
  • Busca la sección “Block purchase for unverified users” y márcala ✓
  • Debajo elige: Block purchase on checkout y Block purchase on cart (ambas si aparecen).
  • Guarda cambios.

.- Instala el siguiente plugin:

-> https://wordpress.org/plugins/block-temporary-email/

Configuración:

IsTempMail API token: Déjalo vacío

Hook behavior: Selecciona ✓ Check all emails

No check on URIs (1): Dédalo en blanco

Local whitelist: Añade los emails que se suelen utilizar:

  • gmail.com
  • outlook.com
  • hotmail.com
  • yahoo.com

Local blacklist: añade lo siguiente:

  • mail.ru
  • yandex.ru
  • rambler.ru
  • list.ru
  • bk.ru
  • inbox.ru
  • qq.com
  • 163.com
  • 126.com
  • sina.com
  • yeah.net
  • temp-mail.org
  • 10minutemail.com
  • guerrillamail.com

 

Revisa si con esto mejora y bajan esos falsos registros.

 

Un Saludo


 
Respondido : 25/11/2025 12:15 pm
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe,  esta solución tiene muy buena pinta. Estoy en ello pero tengo algunas dudas. Adjunto imágenes

1- Cuando me comentas que deje en blanco algunos campos, te refieres a que los deje como están al instalarlos o que borre el contenido de dichos campos. La duda es porque algunos tienen algo puesto por defecto al instalar. (Adjunto imágenes)

2- Si activo estos plugins, entiendo que debo desactivar el de WPFORMS (Cloudflare Turnstile.) ¿Es así, verdad?

3- Por otro lado, me he encontrado con algunos problemas para completar la configuración de los plugins.

En el plugin E-mail Verification, los campos que te detallo no aparecen:

  • Expire time: Pon 48(o 72 si quieres dar más margen) No aparece salvo que compres Pro
  • Expire time unit: Hours Así el enlace caduca en 48-72 horas Queda sin uso al no activar Expire Time
  • Ve a la pestaña “Advanced” (arriba, al lado de General).
  • Busca la sección “Block purchase for unverified users” y márcala ✓  No aparece 
  • Debajo elige: Block purchase on checkout y Block purchase on cart (ambas si aparecen).  No aparecen

Duda: ¿Sin poder activar el campo Expire time, seguirá siendo efectivo?

 

En el otro plugin Block Temporary E-mails, ocurre lo siguiente:

IsTempMail API token: Déjalo vacío No se puede dejar vacío o no guarda nada. 

En vista de ello he solicitado el Api token y he puesto la clave. Entonces me ha dejado guardar.

 

no block opciones
config 1
mas campos verify plugin
temp mail problema
expire time

Saludos y gracias

 

 


 
Respondido : 26/11/2025 7:41 am
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

La duda es porque algunos tienen algo puesto por defecto al instalar. (Adjunto imágenes)

Sí, elimina lo que hay en las celdas.

Si activo estos plugins, entiendo que debo desactivar el de WPFORMS (Cloudflare Turnstile.) ¿Es así, verdad?

No, déjalo activado, sigue protegiéndote.

Expire time: 

Lo tienes en la pestaña Email, por defecto pon 2 horas:

chrome capture 2025 11 26

 

Expire time unit:

Esta en la pestaña General pero por defecto en la version Free no se puede cambiar:

chrome capture 2025 11 26 (1)

No es ningún problema, simplemente que el enlace de verificación nunca caduca.

Block purchase for unverified users

No está en la version free, pero no lo necesitas.

Block purchase on checkout y Block purchase on cart

Lo mismo que los anteriores, en la versión Free no esta pero en tu caso, no lo necesitas. Tu problema principal son los bounces de email (correos devueltos de mail.ru falsos), no las compras fraudulentas.

 

Un Saludo


 
Respondido : 26/11/2025 10:40 am
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe,

Muchas gracias. Voy a probar así y te comento el resultado. 

Tengo alguna duda con los dominios que no son sospechosos ni comunes. Es decir, que no son los más usados pero tenemos clientes que los usan, como icloud.com, por ejemplo. Entiendo que con éstos lo mejor es no incluirlos ni en la lista blanca ni en la negra...

Entiendo que en la lista negra solamente se puede poner dominios, no correos concretos como ocurre con el E-mail Scaner del Panel de Control, en el cual sí se puede incluir un e-mail concreto como: an.jel.ik.a.lop.i.stuck.lo.v.e@gmail.com Lo comento porque mucho del spam que nos llega en el registro es con dominios populares, como gmail o hotmail.

Ojala existiera un plugin que pudiera bloquear los e-mails que contengan más de uno o dos puntos antes de @, porque muchos correos basura son de este tipo: s.tr.iuo.ko.ff.st.iff.a.l.m.o.st@gmail.com, sam.m.y.ma.nn.9.76@gmail.com, st.ri.uokof.f.s.ti.f.fa.lmos.t@gmail.com, stef.f.b.urtonol.o@gmail.com, etc

Excelente post, Pepe, muchas gracias. 👍 👍 

 


 
Respondido : 26/11/2025 1:30 pm
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

 Entiendo que con éstos lo mejor es no incluirlos ni en la lista blanca ni en la negra...

Exacto, la API de IsTempMail (y la base de datos del plugin) ya lo reconoce perfectamente como dominio real y permanente.

Entiendo que en la lista negra solamente se puede poner dominios, no correos concretos

En este caso el plugin intenta enviar el email de verificación a ese Gmail real pero como el Gmail es real, NO rebota, no te llega bounce, simplemente la cuenta queda “pending” y se eliminara a las 2 horas.

Hay un snippet que puedes probar:

 

// Bloquear emails y usuarios spam con patrones absurdos
add_filter('registration_errors', function($errors, $sanitized_login, $user_email) {

$email_local = explode('@', strtolower($user_email))[0]; // parte antes del @

// 1. Más de 4 puntos seguidos o en total
if (substr_count($user_email, '.') > 4 || preg_match('/\.{3,}/', $email_local)) {
$errors->add('spam_email', __('Este correo no está permitido.', 'woocommerce'));
return $errors;
}

// 2. Más de 30 caracteres antes del @
if (strlen($email_local) > 30) {
$errors->add('spam_email', __('Este correo no está permitido.', 'woocommerce'));
return $errors;
}

// 3. Palabras típicas de bots spam
$spam_words = ['love','sex','fuck','xxx','porn','girl','boy','hot','sexy','cum','dick','pussy','123','abc','qwe','asd','zxc','yyy','mail','temp','test','spam'];
foreach ($spam_words as $word) {
if (strpos($email_local . $sanitized_login, $word) !== false) {
$errors->add('spam_email', __('Este correo o usuario no está permitido.', 'woocommerce'));
return $errors;
}
}

return $errors;
}, 10, 3);

 

Con este Snippet y lo que hiciste antes, bloquearas la mayoría de los correos no legítimos.

 

Un Saludo


 
Respondido : 26/11/2025 2:29 pm
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe, lo del snippet me parece muy buena idea, pero tengo algunas dudas para implementarlo. 

Entiendo que Snnipet, Shortcode y Fragmento de código es lo mismo. Si es así, en el plugin de E-mail Verification los Shortcodes sólo están disponibles en PRO.

¿Podría ponerlo en el plugin Fragmentos de código? En este caso, ¿dónde debería insertar el código? Aparecen diversos campos de texto libre. (Adjunto imagen) Y solamente deja escribir código PHP o HTML. (Resto de lenguajes sólo en versión PRO)

Fragmentos codigo plugin

Aunque ya me respondiste que borrara del plugin E-mail Verification lo que venía escrito por defecto, tengo dudas con los campos de algunas pestañas que llevan una lista de selección en lugar de un check o campo de texto. (Adjunto ejemplo)  Es decir, no sé qué debo escoger de la lista de selección ni estoy seguro de si debo borrar los códigos que vienen por defecto, como el de la parte inferior de la imagen. (Puede que las pestañas de las que no mencionaste configuración no me afecten y no debo hacer nada en ellas, pero prefiero asegurarme, no sea que falle el plugin porque deje algo mal 🙂 )

consulta email verify

Por último, en tu anterior respuesta, cuando dices: ...el plugin intenta enviar el email de verificación a ese Gmail real pero como el Gmail es real... Querías decir eso o que el plugin intenta enviarlo a un gmail real pero como el Gmail NO es real...?

Muchas gracias por tu ayuda y disculpa mi ignorancia.


Esta publicación ha sido modificada el hace 3 semanas por Alceste
 
Respondido : 27/11/2025 7:21 am
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

¿Podría ponerlo en el plugin Fragmentos de código? 

Si, es en el plugin de fragmentos de código donde tienes que añadirlo, añades un titulo para tenerlo identificado y el codigo

chrome capture 2025 11 27

no sé qué debo escoger de la lista de selección ni estoy seguro de si debo borrar los códigos que vienen por defecto

Esas dos opciones que tienes marcadas en la captura de Advanced Options están perfectas tal cual y no las toques.

Querías decir eso o que el plugin intenta enviarlo a un gmail real pero como el Gmail NO es real...?

Las cuentas de Gmail son reales, El bot crea una cuenta de Gmail real mediante la API de Google o cualquier otra combinación. La cuenta existe de verdad en los servidores de Google por eso no rebota cuando tu tienda envía el email de verificación. Al no abrir nunca el email ni hacer clic en el enlace de verificación ( Los bots nunca abren los correos ) la cuenta queda en “pending” 

Al final, Google acaba desactivando o borrando esa cuenta a los pocos días/semanas por inactividad o por detectar que fue creada automáticamente.

 

Un Saludo


 
Respondido : 27/11/2025 9:46 am
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe, he insertado el código donde me indicas, debajo del texto <?php que aparece antes de la línea 1

En cuanto a las opciones o textos que vienen ya puestos en la pestaña Advanced que no debo tocar, no me queda claro si en el resto de pestañas debo borrar el contenido de las celdas o no tocarlo. Tal vez no me expresé bien en una consulta anterior, però entendí que en algunos campos me indicabas borrar el contenido.

En las otras pestañas también hay expresiones parecidas a las de Advanced  y en Advanced hay más de las que he adjuntado antes. ¿Dejo estas pestañas tal cual están sin modificar nada de lo que viene por defecto? Por si es útil adjunto imágenes con el nombre de cada pestaña para que puedas ver los campos. Disculpa si no era necesario y basta con no tocar nada del resto de la configuración. Como decía es para asegurarme de tenerlo bien.

 

Saludos y mil gracias


 
Respondido : 27/11/2025 11:59 am
Pepe
 Pepe
Respuestas: 41582
Illustrious Member Admin
 

Hola Alceste.

Déjalo todo por defecto como tienes ahora y lo pruebas, según los resultados veremos si hay que hacer mas cosas pero primero pruébalo a ver que tal se comporta.

Con lo que tienes ya tendrá que parar muchas de las cuentas.

 

Un Saludo


Esta publicación ha sido modificada el hace 3 semanas por Pepe
 
Respondido : 27/11/2025 1:04 pm
Respuestas: 2647
Famed Member
Topic starter
 

Hola Pepe,

Parece que siguen entrando los correos con el patrón de muchos puntos. Ha entrado este: m.attte.nly.s.hl.u.bely(a)gmail.com /He sustituido @ por (a)

Veo que en la versión gratuita Fragmentos de código solo permite PHP i HTML. (No permite Java)

image

Inserté el código debajo del texto <?php que aparece antes de la línea 1. Está mal?

Saludos y gracias!


 
Respondido : 01/12/2025 6:43 am
Página 1 / 2