Google v roce 2018 představil svou již třetí verzi obrany proti vyplněnování formulářů na internetu robotem.
Od předešlých verzí se liší především odstraněním potřeby jakékoliv akce uživatele.
Jak napojit webový formulář na reCaptcha v3?
- vygenerovat nové klíče na stránce https://www.google.com/recaptcha/
- přidat javascript do hlavičky webu
<script src="https://www.google.com/recaptcha/api.js?render=____RECAPTCHA_SITE_KEY___"></script> <script> grecaptcha.ready(function () { grecaptcha.execute('____RECAPTCHA_SITE_KEY___', { action: 'contact' } ).then(function (token) { var recaptchaResponse = document.getElementById('recaptchaResponse'); recaptchaResponse.value = token; } ); } ); </script>
- do formuláře přidat nové neviditelné pole
<input type="hidden" name="recaptcha_response" id="recaptchaResponse">
- a při kontrole odeslaného formuláře kontrolovat výsledné score návštěvníka
if (isset($_POST['send']) && isset($_POST['recaptcha_response'])) { $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify'; $recaptcha_secret = "___RECAPTCHA_SECRET_KEY___"; $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.5) { // zde bude pokračovat kód, uživatel je ověřen... } }
listopad 2019