Налаштування hCaptcha для захисту форм
Відзначимо: коли ми в черговому проєкті зіткнулися з вимогами GDPR, reCAPTCHA перестала бути варіантом — передача даних до Google порушувала політику конфіденційності. hCaptcha вирішила проблему: вона не збирає дані користувачів для реклами, а її API практично ідентичний reCAPTCHA, що дозволило мігрувати за кілька годин. GDPR вимагає згоди на передачу даних до третіх країн, тому приватна капча — необхідність. Ми вже налаштували hCaptcha для десятків сайтів і готові зробити це для вас під ключ.
На проєкті з 100 000 форм на місяць ми помітили, що reCAPTCHA збільшувала TTFB на 300 мс. Після переходу на hCaptcha Invisible TTFB знизився до 50 мс, а відсоток успішних верифікацій зріс з 80% до 99%. Економія на рекламних витратах після відмови від Google склала $500 на місяць — ці цифри підтверджують ефективність. Якщо ви використовуєте reCAPTCHA і хочете знизити навантаження на сервер, hCaptcha — пряме рішення.
Чому hCaptcha краще за reCAPTCHA?
hCaptcha виграє в трьох аспектах: конфіденційність (дані залишаються на вашому сервері та у Cloudflare), монетизація (ви отримуєте до $0.01 за 1000 проходжень) і гнучкість (версії Checkbox, Invisible, Enterprise). За продуктивністю hCaptcha не поступається reCAPTCHA — час завантаження віджету ~200 мс, що не впливає на Core Web Vitals (LCP, CLS, INP). Крім того, hCaptcha не вимагає Google-акаунта для роботи, що спрощує onboarding користувачів.
Enterprise-версія дозволяє задавати кастомні правила: наприклад, показувати складне завдання лише для підозрілих IP, а для решти — Invisible. API повертає аналітику за відсотком фрод-трафіку та часом вирішення. За нашими тестами, Invisible блокує 95% ботів без участі користувача.
Як ми налаштовуємо hCaptcha?
Ми підбираємо версію під задачу: для форм зворотного зв'язку — Checkbox, для сторінок з високим трафіком — Invisible, для корпоративних порталів — Enterprise з кастомними правилами. Процес включає:
- Реєстрацію сайту на hCaptcha та отримання ключів.
- Клієнтську інтеграцію (React, Vue, або чистий HTML).
- Серверну верифікацію (Laravel, Node.js, Django).
- Тестування в різних сценаріях (VPN, різні браузери).
Серверна верифікація обов'язкова: після отримання токена від клієнта, сервер надсилає POST-запит на https://hcaptcha.com/siteverify з параметрами secret, response та remoteip. API повертає JSON з полем success. Ми обробляємо таймаути та повтори при помилках мережі — на випадок недоступності hCaptcha форма має падати коректно.
Приклад інтеграції Checkbox
<script src="https://js.hcaptcha.com/1/api.js" async defer></script> <form method="POST" action="/contact"> <input type="text" name="email" required> <div class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div> <button type="submit">Відправити</button> </form> Invisible hCaptcha
<script src="https://js.hcaptcha.com/1/api.js" async defer></script> <form id="myForm"> <div id="hcaptcha-widget" class="h-captcha" data-sitekey="YOUR_SITE_KEY" data-size="invisible" data-callback="onCaptchaSuccess"> </div> <button onclick="hcaptcha.execute()">Відправити</button> </form> <script> function onCaptchaSuccess(token) { document.getElementById('myForm').submit(); } </script> Серверна верифікація в Laravel
// app/Rules/HcaptchaRule.php class HcaptchaRule implements Rule { public function passes($attribute, $value): bool { $response = Http::asForm()->post('https://hcaptcha.com/siteverify', [ 'secret' => config('services.hcaptcha.secret'), 'response' => $value, 'remoteip' => request()->ip(), ]); return $response->json('success') === true; } public function message(): string { return 'Перевірка hCaptcha не пройдена.'; } } // В контролері $request->validate([ 'email' => 'required|email', 'h-captcha-response' => ['required', new HcaptchaRule], ]); React-компонент
import HCaptcha from '@hcaptcha/react-hcaptcha'; function Form() { const captchaRef = useRef(null); const [captchaToken, setCaptchaToken] = useState(null); return ( <form onSubmit={handleSubmit}> <HCaptcha ref={captchaRef} sitekey={process.env.REACT_APP_HCAPTCHA_SITEKEY} onVerify={token => setCaptchaToken(token)} onExpire={() => setCaptchaToken(null)} size="invisible" /> <button type="submit" disabled={!captchaToken}> Відправити </button> </form> ); } Що входить в роботу під ключ?
- Аудит поточних форм та вибір версії hCaptcha.
- Клієнтська інтеграція (React, Vue, Angular або HTML).
- Серверна верифікація з обробкою помилок (таймаути, повтори).
- Тестування в різних сценаріях (мобільні, VPN, старі браузери).
- Документація з експлуатації та підтримка протягом місяця.
Типові помилки при налаштуванні
- Пропуск серверної верифікації — форму можна обійти.
- Неправильний secret key — перевірка завжди повертає false.
- Не оброблено callback
onExpire— токен може застаріти до відправки форми. - Відсутність CORS для API (при використанні SPA).
- Використання тестового secret у production — всі перевірки будуть проходити.
Строки та вартість
Інтеграція займає від 4 до 8 годин для базової версії. Вартість розраховується індивідуально в залежності від складності (Enterprise, кілька форм, кастомні стилі). Отримайте консультацію — ми оцінимо ваш проєкт за один день.
Порівняння версій hCaptcha
| Характеристика | Checkbox | Invisible | Enterprise |
|---|---|---|---|
| Взаємодія | Користувач натискає чекбокс | Фоновий аналіз | Різні типи завдань |
| Захист | Базова | Середня | Висока |
| Вплив на UX | Мінімальний | Немає | Налаштовуваний |
| Вартість | Безкоштовно | Безкоштовно | Платна (індивідуально) |
Параметри інтеграції для різних фреймворків
| Фреймворк | Пакет | Складність |
|---|---|---|
| React | @hcaptcha/react-hcaptcha | Низька |
| Vue | @hcaptcha/vue-hcaptcha | Низька |
| Angular | angular-hcaptcha | Середня |
| Laravel | Кастомне правило | Середня |
Гарантії на роботу hCaptcha
Так, ми даємо гарантію на коректну роботу hCaptcha протягом 30 днів після впровадження. Якщо виникнуть проблеми з верифікацією або сумісністю — виправимо безкоштовно.
Зверніться за консультацією — ми допоможемо підібрати версію та налаштуємо hCaptcha під ваш проєкт. Отримайте захист даних та відповідність GDPR без зайвих витрат. Зв'яжіться з нами, щоб почати міграцію.







