Te encuentras ya aburrido de recibir SPAM en tu correo electrónico, y descubres que en tu nueva y flamante web también recibes estos incómodos comentarios. ¿Quieres saber cómo dejar de recibir SPAM de tus formularios de contacto? En esta mini guía voy a enseñarte como aprovechar las herramientas que Google ha desarrollado para este fin, y también a instalar reCAPTCHA de una manera sencilla. ¡Empezamos!
Que es Google reCAPTCHA
Si acabas de poner un formulario de contacto en tu web o si ya lo tenías funcionando desde hace tiempo, seguro que no paras de recibir correo basura y contactos «ficticios» que no te aportan ningún valor.
Este tipo de SPAM o correo basura lo crean unos bots que tienen como único cometido, rastrear la web buscando direcciones de email a los que poder mandar publicidad, campañas de venta de productos fraudulentos o timos, e incluso peor aún, ficheros y estrategias de phishing.
Para tratar de aliviar este problema Google creó en torno al año 2009, (o más bien compró la empresa que lo desarrolló inicialmente) un sistema que era capaz de discernir si el ordenador, que estaba interactuando con la web, era un bot o un ser humano. Este sistema se llamó Google reCAPTCHA.
reCAPTCHA v2
Posteriormente sobre el año 2014 Google lanzó la segunda versión del software. No se complicaron con el nombre y pasó a llamarse Google reCAPTCHA v2. El software era una evolución del anterior y, aún a día de hoy, es de los más usados en la internet. El software usa un algoritmo secreto para analizar el comportamiento del usuario/bot. Entre otros, el algoritmo revisa las cookies instaladas y activas en tu navegador, e incluso la dirección IP para verificar el comportamiento a través de Internet. Este algoritmo hace de Google reCAPTCHA v2 un sistema muy fiable para dejar de recibir SPAM.
reCAPTCHA v3
Hace menos de 2 años (octubre de 2018), Google lanzó la tercera versión de su software anti bots. El principal objetivo que se marcó Google con esta versión, fue la de minimizar la interacción necesaria del usuario para verificar si se trata de un bot o no. Es decir, buscaban un sistema anti spam o anti bots totalmente transparente e inocuo para los visitantes reales.
El sistema introduce como novedad un análisis de riesgos de los visitantes y elabora distintos perfiles o escalas de riesgo. A cada visita le asigna una puntuación diferente, clasificándolos desde el 0.0 al 1.0 en orden de probabilidad de ser un bot o un humano. Al igual que en la reCAPTCHA v2, Google reCaptcha v3 se fija en diferentes tipos de interacciones del usuario a través de su navegación por internet, para determinar si es un bot o no.
Instalar reCAPTCHA
Si tienes una web montada en WordPress es relativamente sencillo instalar medidas para dejar de recibir SPAM. Pero, ¿y si no tienes WordPress? A continuación te enseñaré cómo instalarlo directamente en tu código HTML y PHP.
El proceso es semejante al de instalar Google Analytics: Hay que crear una cuenta e insertar un código en nuestra página. Voy a mostrarte cómo en 3 sencillos pasos podrás instalar este sistema antispam en tu web. Lo primero que debes hacer es darte de alta en Google reCAPTCHA.
Darse de alta en Google reCAPTCHA
Para ello entra en la página de registro de Google reCAPTCHA. En ella podrás registrarte y crear un nuevo proyecto. Verás una pantalla similar a esta:
En esta pantalla, lo primero que tienes que hacer, es registrar el nuevo sitio web donde quieres implementar el reCAPTCHA. Luego debes elegir que versión quieres (v2 o v3) y a continuación indicar el dominio dónde irá instalado. Por último aceptas las condiciones de Google, si así lo decides, y a continuación se mostrará una pantalla donde Google te da dos claves: La clave de tu sitio web y la clave cifrada. Guárdalas bien porque las necesitarás más adelante.
Instalar Google reCAPTCHA v2
Una vez has registrado tu sitio y generado las claves tienes que ir a tu código HTML. Concretamente al <head>. Ahí debes introducir la siguiente llamada a la librería JavaScript de Google:
<script src='https://www.google.com/recaptcha/api.js'></script>
Acto seguido, debes añadir tu clave de sitio dentro de tu formulario. Es decir, dentro de las etiquetas <form> y </form>, debes añadir el siguiente codigo:
<div class="g-recaptcha" data-sitekey="API_KEY"></div>
Donde pone «API KEY» debes poner la clave de tu sitio web que has obtenido anteriormente al registrar tu página en Google reCAPTCHA.
Por último debes ir al php de tu formulario e introducir el siguiente código de ejemplo. Donde pone «API_SECRET» debes introducir la clave secreta que te proporcionó Google:
<?php
$name = stripslashes($_POST["name"]);
$email = stripslashes($_POST["email"]);
$message = stripslashes($_POST["message"]);
$recaptcha = $_POST["g-recaptcha-response"];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'secret' => 'API_SECRET',
'response' => $recaptcha
);
$options = array(
'http' => array (
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$verify = file_get_contents($url, false, $context);
$captcha_success = json_decode($verify);
if ($captcha_success->success) {
// No eres un robot, continuamos con el envío del email
// ...
// ...
} else {
// Eres un robot!
}
?>
Instalar Google reCAPTCHA v3
Igual que en caso anterior, lo primero que debes hacer es introducir en tu HTML el siguiente código dentro de las etiquetas <head>. Sustituye «CLAVE_PUBLICA» por tu clave de sitio web proporcionada por Google al realizar el registro.
<script src='https://www.google.com/recaptcha/api.js?render=CLAVE_PUBLICA'>
</script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('CLAVE_PUBLICA', {action: 'formulario'})
.then(function(token) {
var recaptchaResponse = document.getElementById('recaptchaResponse');
recaptchaResponse.value = token;
});});
</script>
Acto seguido, tienes que añadir un «input» al formulario HTML. El código es el siguiente:
<input type="hidden" name="recaptcha_response" id="recaptchaResponse">
Para finalizar, debes acceder al PHP donde se resuelve el formulario HTML. Dentro introduce el siguiente código y cambia nuevamente donde dice «CLAVE_PRIVADA» por tu clave secreta. Si te fijas en el código verás un «score» que debe ser igual o mayor que 0.7. Subiendo o bajando este valor aumentarás la severidad del filtro.
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = 'CLAVE_PRIVADA';
$recaptcha_response = $_POST['recaptcha_response'];
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);
if($recaptcha->score >= 0.7){
// OK. ERES HUMANO, EJECUTA ESTE CÓDIGO
}else{
// KO. ERES ROBOT, EJECUTA ESTE CÓDIGO
}
Conclusión
Si estás cansado de recibir numerosos mensajes basura en tus formularios, la herramienta de Google es una muy buena solución para dejar de recibirlos. Como has visto, la instalación no requiere más de 15 o 20 minutos. Si necesitaras ayuda o asesoramiento profesional para la creación de tu sitio web, como siempre, puedes contar con nosotros.
Si te ha gustado este artículo o tienes alguna sugerencia, puedes dejarme un comentario. ¡Hasta la próxima!
Hola,
Mil gracias, muy práctico!
Después de horas de googlear esto lo hace fácil para gente sin conocimientos en programación. Se agradece !
Buenos días, Carlos.
¡Muchas gracias por tu comentario!
Un saludo