Конкуренты получают копию ваших заявок. И это лечится не за 600 тысяч.
Региональный сайт в нише с дорогим лидом: свайные фундаменты, средний чек 200-700к ₽. Заявка падает на сайт, и через несколько минут конкурент перезванивает клиенту первым. Рынок убеждён, что заявки кто-то ворует хитрой машиной у конкурентов. Я провёл публичный аудит и нашёл семь дыр на форме, через которые реально течёт. Главную закрывает одна строка в nginx (это серверная программа, которая отдаёт сайт посетителям).
Платят 250-600к ₽ за «коробку» и ничего не получают
В нишах, где стоимость лида в Я.Директе доходит до 800-1500 ₽ за заявку (фундамент, окна, потолки, юридические услуги, медклиники), все владельцы видят один и тот же симптом. Заявка приходит, и через 5-10 минут клиент жалуется, что «уже звонят какие-то ваши коллеги» с похожим оффером по более низкой цене.
Рынок предлагает «коробочные решения от парсеров» по 250-400-600 тысяч ₽. Внутри обычно один антибот-плагин и переименованный отчёт Я.Метрики. Защиты в этом столько же, сколько в красивой презентации. Ниша, у которой реально течёт, продолжает терять заявки и платить дальше.
Что нашли за 40 минут публично, без проникновения
Ноль security-заголовков
Нет CSP, HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy. Любое расширение в браузере клиента (антивирус-плагин, купонатор) свободно читает форму до отправки. Это главная причина утечки. Лечит один блок в nginx, час работы.
Форма GET с телефоном в URL
Форма отправляет запрос как /back/?action=callback&tel=+7.... Телефон попадает в access-log nginx, в логи прокси-провайдеров, в кэш браузера, в Referer. Помимо технического риска это прямое нарушение 152-ФЗ, ведь телефон относится к ПДн.
CORS открыт всем
Заголовок Access-Control-Allow-Origin: * разрешает любому постороннему сайту дёрнуть форму через JavaScript в браузере клиента и отправить заявку «от его имени». Готовый инструмент для скликивания и спам-параллели.
Facebook Pixel
На странице висит Pixel компании Meta (экстремистская организация в РФ). Данные клиента уходят за периметр, юридический риск. На региональном строительном сайте Pixel не нужен в принципе.
Нет защиты от автосабмита
Ни капчи, ни honeypot, ни проверки времени заполнения, ни rate-limit. Скрипт за 5 минут на коленке отправляет 10 000 заявок. Менеджеры обзванивают ботов, бюджет Директа сливается на пустые лиды.
Я.Метрика-вебвизор пишет ввод формы
Вебвизор (это запись действий посетителя: куда водил мышкой, что нажимал) включён, поля формы не помечены data-ym-mask. Если у внешнего подрядчика, SEO-агентства или бывшего маркетолога есть доступ к Метрике, он открывает запись и забирает номер себе. Настройками сайта это не закрыть, нужен аудит доступов.
Четыре сценария утечки, и защита у них разная
Прежде чем чинить, надо понять, какой канал работает у конкретного сайта. На любом сайте в нишах с дорогим лидом встречается один из четырёх сценариев утечки.
- 1. Расширения в браузере клиента. Антивирус-помощник, купонатор, SEO-плагин читают форму до отправки и шлют копию на свой сервер. Самый частый сценарий. Закрывается Content-Security-Policy.
- 2. Парсеры выдачи Директа + автосабмит. Конкурент следит за объявлениями, тянет лендинг, шлёт боты на форму. Никто не перехватывает ваши заявки, идёт скликивание и спам-параллель. Закрывается honeypot, Turnstile, rate-limit и закрытием CORS.
- 3. Слитые подрядчики и сторонние JS. SEO-агентство, бывший маркетолог или фрилансер с доступом к Метрике-вебвизору смотрит запись ввода формы. Или собственный коллтрекинг в open-source режиме сливает номера. Закрывается аудитом доступов и маскированием полей.
- 4. Слив изнутри. Менеджер пересылает заявки конкуренту. Технически тут не защититься, у админа CRM по определению есть доступ к данным. Закрывается юр.слоем: NDA с суммой штрафа, приказ о коммерческой тайне, логи доступа, канарейка-маркер.
Защита держится на трёх слоях. Без любого из них «коробка» остаётся презентацией
Слой 1, сайт. CSP с whitelist на вашу аналитику, SRI на сторонние скрипты, форма только POST с JSON-телом, honeypot, Turnstile, маскирование полей вебвизора. Закрывает каналы 1 и 2.
Слой 2, инфраструктура. CORS строго на свой домен, HMAC-подпись запросов, rate-limit, WAF (Cloudflare/Qrator), антибот-фильтры на стороне Директа. Закрывает канал 2 и часть канала 3.
Слой 3, юр.часть. NDA с менеджерами и подрядчиками, приказ о коммерческой тайне, аудит прав в CRM и Метрике, канарейка-маркер для проверки слива изнутри. Закрывает каналы 3 и 4.
От 80 000 до 280 000 ₽, по глубине работ
Реальная стоимость защиты в нише с дорогим лидом, без переплаты за «коробочный шильдик».
- Аудит «куда течёт»: 80 000 ₽, 5 рабочих дней. Расширенный сетевой аудит, аудит доступов к Метрике и CRM, канарейка-кампания со спецтелефоном. Отчёт + дорожная карта + видеоразбор.
- Базовая защита: 180 000 ₽, 2 недели. Аудит входит. CSP, SRI, форма POST с HMAC, Turnstile, маскирование вебвизора, чистка тегов, закрытие CORS, rate-limit. Закрывает каналы 1, 2 и 3 на 80%.
- Полное закрытие + подписка — 280 000 ₽ + 18 000 ₽/мес, 3-4 недели. Базовая защита плюс перевыпуск фронта на современный стек, WAF, юр.пакет (NDA + приказ КТ), канарейка-маркер, ежемесячный отчёт.
В сумме за первый год клиент платит ~480-500к ₽ (полное закрытие + 12 месяцев подписки). Это те же деньги, что просят коробочники, только за них клиент получает измеримый результат, юр.слой и ежемесячный отчёт «попыток N, отбито M».
Заявки утекают не из-за хакера. Из-за дефолтных настроек 2010-х
Если у вас сайт старше 3 лет на любом стеке (Битрикс, WordPress, голый PHP, или, как в этом кейсе, Vue со сборкой 2021 года), почти гарантированно нет ни одного современного security-заголовка. Дальше всё предсказуемо: расширения в браузере клиента читают форму, любой сторонний сайт с открытым CORS может слить заявку, а Метрика-вебвизор пишет ввод телефона, доступный всем подрядчикам с правами на чтение.
Хитрая машина у конкурентов — удобный миф для продавцов коробочных решений. На деле сайт открыт просто потому, что его никто не закрывал, и заявки читает любой, у кого в браузере висит лишнее расширение. На закрытие уходит не миллион рублей и не три месяца. Базовый вариант обходится в 180 тысяч и две недели.
У вас сайт в нише с дорогим лидом и подозрение, что заявки утекают?
Бесплатный экспресс-аудит за 30 минут. Пройдусь по 7 пунктам публично и скажу, какой канал утечки наиболее вероятен у вас. Без обязательств, без коробочных оферов.
Запросить экспресс-аудит →Имя клиента не называется. По правилам проекта
Все материалы аудита получены публично, без проникновения в системы клиента. Никакие реальные заявки во время аудита не отправлялись. Конкретные ID счётчиков, токены и URL внутренних эндпоинтов в этом кейсе не публикуются, только общая методика и характер найденных проблем. Полный отчёт, как обычно, остаётся между мной и владельцем сайта.