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
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
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.
Saludos y gracias
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 🖐️
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.)
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
Hola Alceste.
Ok vamos hacer varias cosas.
.- Instala el siguiente plugin:
-> https://wordpress.org/plugins/emails-verification-for-woocommerce/
Configuración:
.- 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:
Local blacklist: añade lo siguiente:
Revisa si con esto mejora y bajan esos falsos registros.
Un Saludo
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:
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.
Saludos y gracias
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:
Expire time unit:
Esta en la pestaña General pero por defecto en la version Free no se puede cambiar:
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
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. 👍 👍
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
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)
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 🙂 )
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.
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
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
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
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
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)
Inserté el código debajo del texto <?php que aparece antes de la línea 1. Está mal?
Saludos y gracias!
