Чтобы внедрить Google reCaptcha(капчу) v3 на сайт необходимо:
Зарегистрировать капчу, получить ключ и секретный ключ
Вставить на страницу скрипт, замнив XXX на ключ
<script src="https://www.google.com/recaptcha/api.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var reCAPTCHA_site_key='XXX';
function reCAPTCHA_execute () {
grecaptcha.execute(reCAPTCHA_site_key, { action: 'contactForm' }).then(function (token) {
$('form').append(
$('<input type="hidden">').attr({
name: 'g-recaptcha-response',
value: token
})
);
}, function (reason) {
console.log(reason);
});
}
if (typeof grecaptcha !== 'undefined' && typeof reCAPTCHA_site_key !== 'undefined') {
grecaptcha.ready(reCAPTCHA_execute);
setInterval(reCAPTCHA_execute, 60000);
}
});
</script>
Проверка ключа осуществляется путем отправки на сайт google.com/recaptcha/api/siteverify, запроса, с GET переменными secret - секретный ключ, g-recaptcha-response - input генерируемый js и remoteip - IP сервера
$response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YYY&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
if($response['success'] == false){
return false;
}