Avisos
Vaciar todo

[Resuelto] Memberpress: formularios de recuperación de contraseña sin protección captcha de google o de CloudFlare Turnstile

6 Respuestas
4 Usuarios
0 Reacciones
17 Visitas
Respuestas: 3
Active Member
Topic starter
 

Recientemente nos hemos visto envueltos en un ataque de robots spammers que lograban traspasar las barreras de cloudflare turnstile y del reto matemático en los formularios de registro de memberpress. Además si el robot accede a la página de recuperación de contraseña, ésta no presenta el reto de turnstile.  Hemos logrado hacer que el reto matemático (plugin de memberpess) funcione para recuperar contraseña, pero me temo que los robots con IA, ya son capaces de sumar.

Hemos conseguido parar de momento el ataque haciendo que los cursos protegidos no aparezca el formulario de registro o de ingreso (login) sino que redirija a la página de login de cuenta donde tenemos más control y donde hemos visto que turnstile sí que para los ataques.

No encuentro ningún plugin que no sea de pago o ninguna solución alternativa "segura" que permita que cualquier formulario de memberpress que requiera recuperar contraseña (con el url query de esta forma: ?action=forgot_password)

Memberpress está instalado junto a woocommerce y Elementor, ninguno de estos están afectados por este problema. Usamos formularios de contacto de Elementor con CloudFlare

Turnstile.

 

Captura de pantalla 2026 03 26 a las 11.05.53

Contenido solo visible a usuarios registrados


 
Respondido : 26/03/2026 10:15 am
Tags del tema
Pepe
 Pepe
Respuestas: 42532
Illustrious Member
 

Hola Ignacio.

Veo que estás utilizando el plugin Simple CAPTCHA Alternative with Cloudflare Turnstile y este plugin tiene una opción para configura el captcha en MemberPress tanto para la el formulario de acceso y registro/finalización de compra.

chrome capture 2026 03 26 (1)

Podemos intentar Forzar Cloudflare Turnstile en el formulario de recuperación de contraseña de MemberPres

.- Añade el siguiente código e el plugin de Fragmentos de código

 

add_action('wp_footer', 'forzar_turnstile_memberpress_forgot_password');

function forzar_turnstile_memberpress_forgot_password() {
if (isset($_GET['action']) && $_GET['action'] === 'forgot_password') {
if (function_exists('simple_cloudflare_turnstile')) {
echo '<div style="margin: 15px 0;">';
simple_cloudflare_turnstile('memberpress_forgot_password');
echo '</div>';
}
}
}

 

Revisa si tenemos suerte y se muestra

 

Un saludo

 

 


 
Respondido : 26/03/2026 12:18 pm
Respuestas: 3
Active Member
Topic starter
 

Hola, hemos activado Cleantalk de pago y de momento está filtrando casi todo el spam, también hemos forzado como indicas, el formulario para memberpress de Simple Turnstile, desde el principio, y he probado finalmente tu código, pero por desgracia, eliminando caché y todo, no se muestra.

Quizá es por lo que dice la documentación, que el hook correcto que MemberPress documenta para ese formulario es mepr-forgot-password-form, y precisamente sirve para añadir contenido antes del botón Submit en la página de “Forgot Password”

Cloudflare indica que el flujo correcto es:

  1. el widget debe estar dentro del formulario para enviar el token;

  2. el token debe viajar en el POST como cf-turnstile-response;

  3. y luego se debe validarl en servidor con Siteverify

Estoy intentando hacer un snippet pero en principio, ahora no me preocupa la parte de recuperar contraseña, ya que se sigue haciendo registros de cursos, saltándose tanto Turnstile como el reto matemático.

Gracias por el intento!


 
Respondido : 27/03/2026 6:58 am
Karen Rios
Respuestas: 20411
Illustrious Member Admin
 

Hola Ignacio, 

Si es posible envianos capturas sobre todas las configuraciones que estas realizando, de igual forma revisa:

  • si el formulario de registro de MemberPress donde entra el spam está usando realmente el widget dentro del <form>;
  • si existe validación server-side del token;
  • y si el flujo de alta en cursos puede centralizarse únicamente en la página de acceso que ahora os está funcionando mejor.

Si es posible envianos el snippet que estás preparando para mepr-forgot-password-form o el método que estés usando en el registro de MemberPress, y lo revisamos para ver si la integración está quedando completa.

Un saludo.


 
Respondido : 27/03/2026 1:26 pm
Respuestas: 3
Active Member
Topic starter
 

Hola

he resuelto el problema con el snippet PHP que inserta turnstile en la página que contiene el shortcode de memberpress para forgot_password, pero no me deja adjuntarlo aquí directamente. El método usado ha sido como el que recomienda en la documentación de Memberpress, atacando el problema desde dentro del formulario. Con la activación de CleanTalk y el formulario de recuperación de password y la integración del snippet con turnstile, el spam ha tendido a cero desde ayer.

El formulario de registro que utilizo es el shortcode de memberpress: [mepr_login_form use_redirect="true"]

Claro que existe validación del token, funciona perfectamente! con Simple CloudFlare Turnstile https://wordpress.org/plugins/simple-cloudflare-turnstile/  

Todo ahora se centra en la única página de acceso con el shortcode de memberpress anterior y el de la cuenta: [mepr_account_form]
Si queréis el snippet, adjunto está en zip. Contraseña: turnstile


 
Respondido : 27/03/2026 6:35 pm
Bruno
Respuestas: 6937
Illustrious Member
 

Hola Ignacio,

Muchas gracias por tu valioso aporte, seguramente ayudara a muchos usuarios que presentan una situación similar

Daremos la consulta por resuelta pero de tener alguna otra duda estaremos atentos

Saludos!


 
Respondido : 27/03/2026 6:59 pm