Kako implementirati Google reCAPTCHA

Kako implementirati Google reCAPTCHA za zaštitu web sajta

Šta je Google reCAPTCHA i zašto je važna?

Google reCAPTCHA predstavlja napredni sistem za zaštitu web sajta od automatskih botova i zlonamernih aktivnosti. Ova tehnologija, koju je razvio Google, koristi sofisticirane algoritme za razlikovanje ljudskih korisnika od računarskih programa. U današnjem digitalnom okruženju, gde su cyber napadi sve češći, implementacija reCAPTCHA-e postaje ključna komponenta bezbednosti bilo kog web sajta. Prema istraživanju Imperve, preko 37% internetskog saobraćaja čine botovi, od kojih su mnogi zlonamerni. Implementacijom reCAPTCHA-e možete značajno smanjiti rizik od spam poruka, automatskih registracija i drugih oblika zloupotrebe.

Različite verzije Google reCAPTCHA

Google nudi tri glavne verzije reCAPTCHA sistema, svaku prilagođenu specifičnim potrebama:

  1. reCAPTCHA v2 – Najpopularnija verzija koja koristi checkbox ("Nisam robot") ili invisible verziju
  2. reCAPTCHA v3 – Radi u pozadini bez korisničke interakcije, dodeljuje skor od 0.1 do 1.0
  3. reCAPTCHA Enterprise – Napredno rešenje za velike organizacije sa dodatnim funkcijama

Prema Google-ovim podacima, reCAPTCHA v3 može detektovati do 60% više zlonamernih aktivnosti u poređenju sa v2 verzijom. Za većinu standardnih web sajtova, reCAPTCHA v2 checkbox verzija predstavlja optimalan izbor jer kombinuje dobru zaštitu sa jednostavnom implementacijom.

Korak po korak vodič za implementaciju

1. Registracija na Google reCAPTCHA platformi

Prvi korak je registracija vašeg sajta na Google reCAPTCHA konzoli. Posetite Google reCAPTCHA admin panel i izaberite "Register a new site". Unesite sledeće informacije:

  • Label (naziv vašeg sajta)
  • Tip reCAPTCHA (v2 checkbox, v2 invisible, v3)
  • Domena(e) gde će se koristiti
  • Vlasnik (vaša email adresa)

Nakon registracije, dobićete dva ključa: Site key (javni ključ) i Secret key (privatni ključ). Ovi ključevi su neophodni za integraciju sa vašim web sajtom.

2. Implementacija na klijentskoj strani

Za reCAPTCHA v2 checkbox verziju, dodajte sledeći kod u HTML forme koje želite da zaštitite:

<html>
  <head>
    <title>reCAPTCHA Demo</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="VAŠ_SITE_KEY"></div>
      <br/>
      <input type="submit" value="Pošalji">
    </form>
  </body>
</html>

Za invisible reCAPTCHA, implementacija je malo drugačija i zahteva dodatni JavaScript kod. Detaljnije uputstvo možete pronaći u Google-ovoj dokumentaciji.

3. Provera na serverskoj strani

Nakon što korisnik pošalje formu, morate verifikovati reCAPTCHA odgovor na serverskoj strani. Evo primera u PHP-u:

<?php
$secretKey = "VAŠ_SECRET_KEY";
$response = $_POST['g-recaptcha-response'];
$remoteIp = $_SERVER['REMOTE_ADDR'];

$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$response&remoteip=$remoteIp";
$response = file_get_contents($url);
$responseKeys = json_decode($response, true);

if(intval($responseKeys["success"]) !== 1) {
    echo "reCAPTCHA verifikacija nije uspela. Molimo pokušajte ponovo.";
} else {
    // Procesirajte formu
    echo "Uspešna verifikacija!";
}
?>

Za druge serverske jezike kao što su Node.js, Python ili Java, Google nudi slične API pozive. Uvek proverite da li je "success" vrednost true pre nego što obradite podatke iz forme.

Najčešći problemi i rešenja

1. Greška "Invalid domain for site key"

Ova greška se javlja kada pokušate da koristite reCAPTCHA ključ na domeni koja nije registrovana u Google konzoli. Rešenje je da proverite listu domena u admin panelu i dodate sve potrebne subdomene (npr. www.vašsajt.com i vašsajt.com).

2. reCAPTCHA se ne prikazuje

Ako vidite samo prazan prostor umesto reCAPTCHA widgeta, proverite:

  • Da li je uključen JavaScript u browseru
  • Da li je ispravno uključen API skript ()
  • Da li koristite ispravan site key

3. Spor odgovor sa Google servera

U nekim slučajevima, posebno ako se vaš server nalazi daleko od Google-ovih, verifikacija može trajati nekoliko sekundi. Rešenje je da implementirate keširanje odgovora ili da koristite asinhroni pristup.

Napredne tehnike i optimizacija

1. Lokalizacija reCAPTCHA

reCAPTCHA podržava preko 100 jezika. Da biste promenili jezik, dodajte parametar 'hl' u URL API skripte:

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

2. Dinamičko učitavanje

Ako imate SPA (Single Page Application) ili dinamički učitavate forme, možete koristiti programski pristup za renderovanje reCAPTCHA-e:

grecaptcha.render('container-id', {
  'sitekey': 'VAŠ_SITE_KEY',
  'callback': function(response) {
    console.log(response);
  }
});

3. Kombinovanje sa drugim sigurnosnim merama

Za maksimalnu zaštitu, kombinujte reCAPTCHA-u sa drugim sigurnosnim merama kao što su:

  • Ograničenje broja pokušaja
  • Vremenski intervali između slanja formi
  • Provera sumnjivih IP adresa

Zaključak

Implementacija Google reCAPTCHA-e predstavlja efikasan način zaštite vašeg web sajta od automatskih napada i zlonamernih botova. Kroz ovaj vodič, pokazali smo kako da registrujete svoj sajt, implementirate reCAPTCHA-u na klijentskoj i serverskoj strani, kao i kako da rešite najčešće probleme. Ne zaboravite da redovno ažurirate svoje ključeve i pratite Google-ove smernice za najbolje rezultate. Za više informacija o izradi web sajtova sa ugrađenim sigurnosnim funkcijama, posetite Izrada web sajta.

Bez obzira da li koristite WordPress ili custom rešenje, reCAPTCHA je neophodan dodatak svakom modernom web sajtu. Za profesionalnu implementaciju koja će maksimalno zaštititi vaš biznis, razmislite o saradnji sa iskusnim web developerima. Više o tome možete saznati na Izrada web sajta.

Scroll to Top