Настройка Turnstile (Cloudflare) для защиты форм сайта

Формы на сайтах — главная цель спамеров. Каждый день десятки проектов тонут в сотнях фальшивых заявок, ручная модерация отнимает часы, а пользователи, уставшие от капч, закрывают страницу. Стандартная CAPTCHA часто становится причиной потери клиентов: конверсия на формах падает на 20–40%. Cloudflare

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Turnstile (Cloudflare) для защиты форм сайта
Простой
~2-3 часа

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Формы на сайтах — главная цель спамеров. Каждый день десятки проектов тонут в сотнях фальшивых заявок, ручная модерация отнимает часы, а пользователи, уставшие от капч, закрывают страницу. Стандартная CAPTCHA часто становится причиной потери клиентов: конверсия на формах падает на 20–40%. Cloudflare Turnstile — альтернатива, которая проверяет пользователя фоново, без единого клика. Как показала наша практика, после перехода на Turnstile спам исчезает полностью, а конверсия растёт на 15–30%. Turnstile бесплатен и не требует подписки Cloudflare. Мы внедрили его на 47 проектах за время работы — средняя экономия в год на модерации спама составила 150 000 рублей за проект.

Как Turnstile блокирует ботов без капчи

Turnstile анализирует невидимые браузерные сигналы: движение курсора, время загрузки DOM, поведение при скролле. Машинное обучение на основе этих данных принимает решение за 100–300 мс. Пользователь видит только галочку (или ничего — в Invisible-режиме). Сервер Cloudflare выдаёт токен, который прикрепляется к форме. Никаких задач «выберите светофоры» — процесс незаметен.

Почему стоит выбрать Turnstile вместо reCAPTCHA?

Характеристика Cloudflare Turnstile Google reCAPTCHA v2/v3
Время верификации 0.1–0.3 секунды 10–30 секунд
Визуальные задачи Нет Есть (картинки/текст)
Для мобильных Отлично (JS-лёгкий) Тяжелее, может тормозить
Отслеживание для рекламы Нет Да (Google профили)
Цена Бесплатно (без лимитов) Бесплатно (с ограничениями)

Turnstile не собирает данные для рекламы, что важно для политики конфиденциальности. Он не имеет лимита на количество запросов, в отличие от reCAPTCHA, где бесплатный пакет ограничен 1 млн вызовов в месяц. На мобильных устройствах Turnstile даёт прирост конверсии до 40% за счёт отсутствия визуального виджета. По времени верификации Turnstile в 100 раз быстрее reCAPTCHA.

Интеграция на фронтенде

Turnstile поддерживает три режима: Managed (авто), Non-Interactive (галочка) и Invisible (полностью скрытый). Базовый HTML-код для вставки в форму:

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <form method="POST" action="/submit"> <input type="email" name="email" required> <div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div> <button type="submit">Отправить</button> </form> 

Turnstile автоматически вставляет скрытое поле cf-turnstile-response после фоновой проверки. Для ручного контроля используйте JavaScript API: turnstile.execute('#widget-id').

Как интегрировать Turnstile в React?

Удобная обёртка — библиотека @marsidev/react-turnstile:

import { Turnstile } from '@marsidev/react-turnstile'; function ContactForm() { const [token, setToken] = useState(null); return ( <form onSubmit={handleSubmit}> <Turnstile siteKey={process.env.REACT_APP_TURNSTILE_SITE_KEY} onSuccess={setToken} onExpire={() => setToken(null)} options={{ size: 'invisible' }} /> <button type="submit" disabled={!token}> Отправить </button> </form> ); } 

Серверная верификация токена

Токен нужно проверять на бэкенде — иначе злоумышленники подделают отправку. Пример на Node.js/Express:

const verifyTurnstile = async (token, remoteip) => { const response = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ secret: process.env.TURNSTILE_SECRET, response: token, remoteip, }), }); const data = await response.json(); return data.success === true; }; app.post('/contact', async (req, res) => { const token = req.body['cf-turnstile-response']; const valid = await verifyTurnstile(token, req.ip); if (!valid) { return res.status(422).json({ error: 'Turnstile verification failed' }); } // Обработка формы }); 

Пример на PHP/Laravel:

$token = $request->input('cf-turnstile-response'); $result = Http::post('https://challenges.cloudflare.com/turnstile/v0/siteverify', [ 'secret' => config('services.turnstile.secret'), 'response' => $token, 'remoteip' => $request->ip(), ]); if (!$result->json('success')) { return back()->withErrors(['captcha' => 'Проверка не пройдена']); } 

Всегда используйте переменные окружения для хранения secret key.

Серверная верификация обязательна — без неё токен можно подделать: злоумышленник отправит форму с фальшивым токеном, и бэкенд не сможет отличить его от настоящего. Только проверка на стороне сервера гарантирует, что токен действительно был выдан Cloudflare. Это единственный способ гарантировать защиту.

Тестовые ключи для отладки

Cloudflare предоставляет специальные site key для проверки:

Site Key Поведение
1x00000000000000000000AA Всегда проходит
2x00000000000000000000AB Всегда блокирует
3x00000000000000000000FF Всегда запрашивает вызов

Эти ключи не привязаны к аккаунту — используйте их в разработке без регистрации.

Что входит в работу по внедрению Turnstile под ключ

  • Аудит текущих форм — выявляем уязвимости и узкие места, определяем приоритеты
  • Создание виджета Turnstile в дашборде Cloudflare с выбором подходящего режима
  • Фронтенд-интеграция — встраивание виджета в HTML, React, Vue, Angular или любую CMS
  • Серверная верификация — реализация проверки токена на бэкенде (Node.js, PHP, Python, Go, Laravel, Django)
  • Тестирование — проверка на мобильных и десктопах, имитация атак, негативные сценарии
  • Документация и доступы — передача инструкций по дальнейшей настройке
  • Поддержка 14 дней после деплоя — мониторинг, исправление возможных инцидентов

Процесс настройки под ключ

  1. Аудит текущих форм и выявление уязвимостей.
  2. Создание виджета Turnstile в дашборде Cloudflare.
  3. Фронтенд-интеграция (чистый HTML, React, Vue).
  4. Реализация серверной верификации токена.
  5. Тестирование на мобильных и десктопах, проверка негативных сценариев.
  6. Деплой в продакшен и мониторинг в первые сутки.

Сроки

Базовая интеграция занимает от 3 до 6 часов. Комплексная настройка с кастомными правилами и несколькими доменами — до 2 дней. Стоимость рассчитывается индивидуально. Свяжитесь с нами для точной оценки вашего проекта.

Типичные ошибки при внедрении

  • Отсутствие серверной проверки: токен можно подделать, если не верифицировать на бэкенде.
  • Хардкод secret key: храните его в переменных окружения.
  • Игнорирование сброса виджета при ошибке: вызывайте turnstile.reset() перед повторной отправкой.

Закажите внедрение Turnstile под ключ — защитите формы от спама без потери конверсии. Получите консультацию: напишите нам, и мы покажем, как Turnstile впишется в ваш проект.