Cara Memasang Google reCAPTCHA v3 di Website Beserta Contoh Kodenya.

Apa itu Captcha ?

CAPTCHA (uji turing publik terotomatisasi penuh untuk membedakan komputer dan manusia) adalah jenis tindakan keamanan yang dikenal sebagai autentikasi tantangan-tanggapan. CAPTCHA membantu melindungi dari dekripsi spam dan sandi dengan meminta Anda menyelesaikan pengujian sederhana, yang membuktikan bahwa Anda adalah manusia dan bukan komputer yang mencoba menyusup ke dalam akun yang dilindungi sandi.  (google.com)

Bagaimana Cara Mendapatkan Layanan reCaptcha Google ?

Sebelum Anda mengintegrasikan reCaptcha V3 ke website, Anda harus mempunyai akun google dan membuat reCaptcha untuk domain Anda. berikut cara pembuatan reCaptcha Google :

  1. Silahkan kunjungi konsol admin recaptcha di sini, apabila belum login, silahkan untuk login terlebih dahulu.
  2. kemudian akan muncul halaman dashboard konsol admin recaptcha. di sebelah kanan atas terdapat tombol dengan icon tanda plus (+) , klik tombol tersebut untuk menambahkan recaptcha Anda. Apabila Anda telah mempunyai beberapa properti/domain yang terdaftar di google, silahkan pilih terlebih dahulu domain mana yang akan dipasangkan recaptcha.  
  3. Setelah Anda mengklik tombol buat recaptcha maka akan muncul formulir pendaftaran recaptcha. Silahkan untuk melengkapi formulir tersebut sesuai dengan informasi website Anda. Pilih reCaptcha V3 untuk membuat reCaptcha versi 3
  4. Apabila Anda mengisi formulir pendaftaran dengan benar maka Anda akan mendapatkan 2 kunci, yaitu SITE KEY dan SECRET KEY.
  5. Setelah mendapatkan 2 kunci tersebut, Anda dapat melanjutkan ke step selanjutnya yaitu mengintegrasikan recaptcha di halaman website Anda.

Tambahkan script javascript dibawah ini di dalam tag <head>


<script src="https://www.google.com/recaptcha/api.js?render=your reCAPTCHA site key here"></script>
<script>
    grecaptcha.ready(function() {
    // do request for recaptcha token
    // response is promise with passed token
        grecaptcha.execute('your reCAPTCHA site key here', {action:'validate_captcha'})
                  .then(function(token) {
            // add token value to form
            document.getElementById('g-recaptcha-response').value = token;
        });
    });
</script>

Tambahkan kode HTML didalam tag Form

   =   =   = >
       =   =   = >
       =   =   = >
    .... your fields
 >

Tambahkan kode PHP di file Kontroler Anda


if (isset($_POST['g-recaptcha-response'])) {
    $captcha = $_POST['g-recaptcha-response'];
} else {
    $captcha = false;
}

if (!$captcha) {
    //Do something with error
} else {
    $secret   = 'Your secret key here';
    $response = file_get_contents(
        "https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']
    );
    // use json_decode to extract json response
    $response = json_decode($response);

    if ($response->success === false) {
        //Do something with error
    }
}

//... The Captcha is valid you can continue with the rest of your code
//... Add code to filter access using $response . score
if ($response->success==true && $response->score <= 0.5) {
    //Do something to denied access
}

Anda harus memfilter akses menggunakan nilai $response.score. nilai skor mulai dari 0,0 hingga 1,0, di mana 1.0 berarti interaksi pengguna terbaik dengan situs Anda dan 0,0 interaksi terburuk (seperti bot). Anda dapat melihat beberapa contoh penggunaan dalam dokumentasi ReCaptcha.

Sumber : https://stackoverflow.com/questions/51507695/google-recaptcha-v3-example-demo/54118106#54118106