Pregunta sobre Contact Form 7 de Wordpress:

ReCaptcha V3: si g-recaptcha-response está vacío, el envío nunca se verifica

Un usuario preguntó 👇

Mucha gente parece tener problemas con Recaptcha V3 con Contact Form 7 5.1.

También tengo problemas cuando una gran cantidad de spam no se compara con la API de Recaptcha V3.

Parece que wpcf7_recaptcha_verify_response en modules/recaptcha.php:109, Si el $_POST['g-recaptcha-response'] no se proporciona, o está en blanco, este filtro devuelve false indicando que el envío no es spam.

Por lo tanto, los spambots parecen poder pasar por alto la validación a través de la API insertando un espacio en blanco g-recaptcha-response campo de formulario.

Acepto que esta cambiando

if ( ! $token ) {
   return $spam;
}

a

if ( ! $token ) {
  return true;
}

esta función abordaría el problema, ya que cualquier envío que no intentara la validación de Recaptcha sería rechazado.

Este tema fue modificado hace 1 año, 12 meses por. Causa: corregir etiquetas de código

(@takayukister)

Hace 1 año, 12 meses

Tiene razón, pero tenga cuidado cuando aplique este enfoque a los sitios de otras personas. ¿Qué crees que sucedería si JavaScript se desactivara accidentalmente en el sitio y el código JS reCAPTCHA diseñado para recuperar una señal no pudiera ejecutarse correctamente? ¿Qué pasaría si el g-recaptcha-response ¿El campo blanco siempre ha sido dejado no por spambots sino por error del propietario del sitio? De hecho, hay toneladas de sitios de WordPress que tienen errores de script y perderán mensajes legítimos porque todos están marcados como spam.

(@peterupfold)

Hace 1 año, 12 meses

Soy consciente de que esta es una medida relativamente agresiva en términos de imponer cualquier sumisión donde no ha habido ningún intento de negar Recaptcha.

Sin embargo, sabemos que la mayoría de los spambots no bloquearán el análisis y la ejecución de JavaScript, por lo que no g-recaptcha-response y así, en este momento, la mayor parte del spam se está dejando pasar, cuando ese no era el caso antes de 5.1 y la API v3.

(@bstofko)

Hace 1 año, 11 meses

Hice algunas pruebas con y sin Javascript habilitado para comparar los resultados con V2 y V3 recaptcha. Descubrí que mientras usaba V2 con Javascript desactivado, el formulario muestra un mensaje de error y no permite que se envíe. Para tener el mismo comportamiento que V3, recomiendo hacer la edición recomendada por PeterUpfold, y agregar el mensaje de error de V2, ligeramente modificado, al formulario dentro de las etiquetas.

No se pudo conectar al servicio reCAPTCHA. Habilite Javascript y vuelva a cargar para obtener el desafío reCAPTCHA.

Coloqué este código justo encima del botón enviar, reemplazando el anterior [recaptcha] etiqueta.

También agrego el registro para registrar cuando falta una respuesta reCAPTCHA, y el registro está directamente alineado con los mensajes de spam que estaba recibiendo.

(@mophilly)

Hace 1 año, 11 meses

No he estudiado el código en Contact 7 o reCAPTCHA. Con eso en mente, la sugerencia de Bev parece razonable.

Me pregunto si se puede configurar una trampa para detectar cualquier javascript una vez que se carga el formulario de contacto. Si es así, una rama condicional de la aplicación wpcf7_recaptcha_verify_response puede manejar la situación de manera apropiada.

(@ linux4me2)

Hace 1 año, 11 meses

Estoy usando el código de línea 112 como prefiero, y todos mis clientes que se quejaron cuando los actualicé a v3 reCAPTCHA, sin recibir ningún correo no deseado y no me arriesgo. el usuario ocasional deshabilitado de javascript no puede usarlo. el formulario de contacto.

Creo que el problema real es que hay una cantidad significativa de usuarios que ejecutan proxies que podrían bloquear los scripts de Google para reCAPTCHA, y con el hockey, no podrán enviar el formulario de contacto al hockey en su lugar. Durante mi prueba, obtendrán el límite naranja “Se produjo un error al intentar enviar su mensaje. Por favor, inténtelo de nuevo más tarde. «Así que es bueno. Sabrán que su mensaje no funcionó.

Quizás un compromiso que no requeriría demasiado trabajo por parte del desarrollador es agregar una opción a la pestaña Correo para «bloquear publicaciones para las que el token reCAPTCHA de Google v3 no está configurado», lo que permitiría al usuario final decidir.

Sería bueno mostrar un mensaje al usuario cuando un letrero vacío bloquea un envío, para los visitantes humanos, algo dice con efecto: “No se pudo enviar el mensaje. Asegúrese de que JavaScript esté habilitado en su navegador ”, pero eso es la guinda del pastel.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *