reCAPTCHA v3

Kot smo omenili že v prvem poglavju, je ta implementacija namenjena naprednejšim uporabnikom, saj ne gre le za obliko priključi in uporabi (angl. plug & play), ampak zahteva od uporabnika dodaten vložek. 

Potrebno je izpostaviti še, da je na tej strani prikazana implementacija na strani odjemalca. Po uspešno opravljenem preizkusu nam namreč reCAPTCHA vrne geslo (angl. token), katerega verodostojnost moramo preveriti na strani strežnika. Več o tem si lahko preberete v poglavju Validiranje na strežniku.

Primer delovanja

Zaradi načina delovanja tega orodja, smo pripravili tudi primer, ki izpisuje vse kar se dogaja v ozadju.

Kako implementirati?

Prvi korak pred samo implementacijo je pridobitev javnega in privatnega ključa, kar lahko storimo na tej povezavi

Nato je potrebno uvoziti JavaScript datoteke iz njihove strani, kar storimo z dodajo izseka kode, ki ga vidimo spodaj. Načeloma je vseeno kje to dodamo, dobra praksa pa je, da to storimo v glavi HTML dokumenta. V spodnjo kodo je potrebno dodati tudi svoj javni ključ.

<script src="https://www.google.com/recaptcha/api.js?render=JAVNI_KLJUC"></script>

Po uvozu, ki smo ga izvedli v zgornjem koraku, je potrebno sprožiti še celoten postopek preverjanja. To storimo z klicem funkcije grecaptcha.execute(). Klicanje te funkcije lahko vežemo na dogodek, kot je na primer klik gumba, ali pa jo poženemo ob zagonu spletne strani. Razvijalci orodja priporočajo, da storimo oboje – orodje namreč omogoča klicanje te funkcije poljubno krat, v splošnem pa je dobro, da se izvede večkrat, saj so s tem podatki bolj natančni in orodje lažje določi, če gre za osebo ali ne.

<script>
	// Ko naložimo stran
  grecaptcha.ready(function() {
      grecaptcha.execute('JAVNI_KLJUC');
  });
 
  //Ob kliku na gumb
  gumb.onclick = function(){
  	 grecaptcha.execute('JAVNI_KLJUC');
  };
 </script>

V zadnjem koraku je potrebno na strani strežnika preveriti, če so vrnjeni rezultati preverjanja verodostojni. Postopek je enak kot pri reCAPTCHA v2. Več o tem si lahko preberete v poglavju Validiranje na strežniku.

Interpretiranje rezultata

Po klicu funkcije execute() nam orodje vrne rezultat z vrednostjo med 0 in 1. Bližji kot je rezultat številu 1, bolj verjetno je, da gre za osebo. Razvijalcu strani ni potrebno implementirati odziva na rezultat, saj lahko nadzoruje le analitiko, ki jo vidi v administratorski konzoli kjer je pridobil javni in privatni ključ.

V kolikor pa se kot razvijalec želimo odzvati, lahko to storimo na podoben način, kot je prikazano v spodnjem primeru. Ob kliku na gumb bo pognana funkcija execute(), ki nam bo vrnila rezultat. V primeru, da je vrednost manjša od 0.7, bomo prikazali opozorilo.

<script>
  gumb.onclick = function(){
  	 grecaptcha.execute('JAVNI_KLJUC').then(function(token){
     	if(token < 0.7) alert("Uporabnik ni oseba.")
     });
  };
 </script>

Označevanje dogodkov

Zadnja verzija orodja vpeljuje tudi način označevanja dogodkov oziroma mest, kjer smo preverjanje uporabili. To nam omogoča boljši pregled nad statistiko in posledično lažjo analizo ranljivih točk naše aplikacije.

Dogodek označimo tako, da v funkcijo execute() zraven javnega ključa prenesemo tudi objekt s parametrov action, katerega vrednost predstavlja oznako dogodka.

 grecaptcha.execute('JAVNI_KLJUC', {action: 'prijava'});