Стандартная каптча, с вводом непонятных символов это уже "прошлый век". Чаще "каптчи" ставят на различные формы. А эти данные очень важны для владельца сайта, т.к. это может быть заказ услуги, обратная связь, регистрация в партнерском разделе и т.п. Важно что бы защита от ботов не стала проблемой для ваших посетителей.
Что бы установить Google recaptcha 2 на сайт необходимо:
<?\Bitrix\Main\Page\Asset::getInstance()->addJs('//www.google.com/recaptcha/api.js');?>
<div class="g-recaptcha" data-sitekey="6Leh4iETAAAAAM6ybuqexxuK0Sc4Q4MBYK3xO3JZ"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-size="compact" ... .g-recaptcha { transform:scale(0.77); transform-origin:0 0; }
<? AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "checkGoogleCaptcha"); function checkGoogleCaptcha(&$arFields) { if ($arFields['IBLOCK_ID'] == 6 && $_REQUEST['iblock_submit']) { global $APPLICATION; if ($_REQUEST['g-recaptcha-response']) { $httpClient = new \Bitrix\Main\Web\HttpClient; $result = $httpClient->post( 'https://www.google.com/recaptcha/api/siteverify', array( 'secret' => '6Leh4iETAAAAAO7ynh2PqbbB777777noIG0tc', 'response' => $_REQUEST['g-recaptcha-response'], 'remoteip' => $_SERVER['HTTP_X_REAL_IP'] ) ); $result = json_decode($result, true); if ($result['success'] !== true) { $APPLICATION->throwException("Вы не прошли проверку подтверждения личности"); return false; } } else { $APPLICATION->throwException("Вы не прошли проверку подтверждения личности"); return false; } } } ?>