reCAPTCHA, quando Google si mette contro i robot

Abbiamo litigato tutti contro i robot che compilano i form pubblicati nei nostri siti con frasi senza senso ne logica e neppure un minimo di umorismo.

I Captcha ci hanno aiutato per benino ad eliminarne una buona parte, ma purtroppo sempre a discapito dell’utente, della User Experience  e soprattutto, dell’estetica. Nell’arco degli anni abbiamo visto captcha di ogni genere, ma mai davvero convincenti:


captcha per ASP, un inizio
MathCaptcha, per imparare la matematica
il vecchio reCaptcha, davvero complicato

 

Finalmente Google ha preso in mano le redini di questo marasma di parole in aramaico e ha deciso di semplificare la vita degli utenti, compromettendo invece quella dei bot.
new-recaptcha-demo

Schermata 2015-01-07 alle 11.41.41in realtà il procedimento di verifica è sempre lo stesso, solo che mettendo la spunta, apparirà una tendina con il testo (più semplice), con le lettere o numeri da inserire.

 

 

fin qui nessuna rogna, ma procediamo.

 

1. la registrazione del sito

per poter avere una chiave di attivazione, Google ci richiede una semplice registrazione, di un nome e di un url sul quale vogliamo inserire il reCAPTCHA. Ci si registra qui:

https://www.google.com/recaptcha/admin

Schermata 2015-01-07 alle 11.45.51

fatto questo si ottengono DUE Chiavi, una per il form e l’atra per recuperare la risposta (che vediamo dopo)

 

2. implementare nel form

questo passaggio è facile facile. basta inserire nell’head questa chiamata:

<script src='https://www.google.com/recaptcha/api.js'></script>

 

e nel form, di solito prima del pulsante di submit

<div class="g-recaptcha" data-sitekey="CHIAVE-del-SITO"></div>

per ottenere questa cosa qui:

Google reCaptcha, quantomeno è nuovo.

 

3. recuperare l’OK da google (via PHP)

per poter recuperare l’approvazione da parte di google, occorre effettuare una chiamata alla API. Io, semplicemente, ho fatto così:


<?PHP

$captcha;

 if(isset($_POST['g-recaptcha-response'])){

     $captcha=$_POST['g-recaptcha-response'];
 }

 if(!$captcha){
    echo '<h2>non hai messo il codice captcha.</h2>';
    exit;
 }

 $Key = "CHIAVE-SEGRETA";

 $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$Key."&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
 if($response.success==false)
 {
     echo '<h2>Brutto Spammer! sciò!</h2>';
 }else{
     echo '<h2>OK, sei un bravo ragazzo.</h2>';
     //.... spedisci ...
}

?>

 

 

 

 

 

 


Pubblicato

in

,

da

Tag: