Почему ваш сайт сам отдаёт контакты конкуренту - без взлома

Задайте себе вопрос: когда человек заполняет форму на вашем сайте, куда именно уходят его данные до того, как они попадают в CRM? И можете ли вы точно сказать, что эти данные видите только вы?

Большинство руководителей не могут ответить на второй вопрос. Не потому что не следят за безопасностью - просто этот вопрос обычно никто не задаёт.

А конкурент задаёт. И находит ответ.


Узнайте, что видно с вашего сайта снаружи: бесплатный аудит периметра на stopparsing.ru


Что такое API вашего сайта - без технических терминов

Коротко: ваш сайт - это не только то, что видит посетитель. Под «витриной» работает система, которая загружает данные в реальном времени. И у этой системы есть адрес, по которому к ней можно обратиться.

Современный сайт работает примерно так. Есть часть, которую видит посетитель: тексты, картинки, меню. И есть часть, которую не видно - она подгружает данные динамически. Цены в каталоге, поля формы, вопросы из чата, контакты менеджера - всё это подгружается динамически каждый раз, когда посетитель что-то делает. Данные берутся по запросу, в реальном времени.

Запрос идёт по адресу. Технически он называется API-эндпоинт. Суть одна: это дверь, через которую сайт получает и отдаёт данные.

Браузер вашего клиента знает этот адрес. Открывает дверь, берёт данные, показывает их клиенту. Всё работает.

Проблема в том, что браузер клиента - не единственный, кто знает адрес. Любой, кто откроет ваш сайт и посмотрит в инструменты разработчика (они встроены в каждый браузер), увидит все эти запросы. Каждый. С адресами, параметрами и тем, что возвращается в ответ.

Дверь открыта. Её видят все.

Как конкурент делает тот же запрос, что и браузер вашего клиента

Коротко: взламывать ничего не нужно. Достаточно скопировать запрос, который отправляет ваш сайт, и отправить его заново - напрямую, без браузера.

Браузер, когда показывает форму или чат, не делает ничего сложного. Он отправляет стандартный запрос по известному адресу и получает данные. Этот запрос можно скопировать - прямо из инструментов разработчика - и отправить повторно. Без браузера, без вашего сайта, напрямую.

Если API не проверяет, кто именно спрашивает, - он отвечает всем. Просто потому что так устроен.

Именно в этом разница между «парсингом сайта» через HTML и сбором данных через API. HTML надо разбирать: искать нужные теги, фильтровать мусор, обходить вёрстку. API отдаёт готовую структуру. Имя, телефон, email, время контакта - одной строкой, по порядку, в машиночитаемом формате.

Для конкурента это в разы проще и быстрее. И не требует никаких особых технических знаний - базовый Python или любой готовый инструмент.

Что конкретно видит тот, кто умеет смотреть

Коротко: через открытый API конкурент может получить несколько типов данных одновременно. Разберём по каналам.

Данные из форм захвата. Когда посетитель отправляет заявку, запрос идёт на сервер. Если этот запрос доступен без авторизации - системы сбора данных видят содержимое заявки раньше или параллельно с тем, как она попадает в CRM. Посетитель ещё не оставил заявку - контакт уже ушёл наружу.

Данные о посетителях сайта. Когда сайт загружает персонализированный контент - «с вами свяжутся», «вы уже смотрели» - он запрашивает данные о посетителе. Если запрос открыт - конкурент видит, кто заходил, когда и с каких страниц. Посетитель зашёл, ушёл подумать - и попал в базу перехвата. Конкурент звонит первым. У вас это выглядит как обычный «отказ» в аналитике.

Виджеты обратного звонка. Форма «Перезвоните мне» - это запрос с номером телефона. Если виджет стороннего сервиса не защищён на уровне API - номер уходит раньше, чем менеджер снял трубку.

Данные о звонках. Через незащищённые каналы конкурент может узнать, кому вы звоните. Это значит - зайти к вашим клиентам первым, зная, что у тех уже есть интерес.

Телефоны сотрудников. Отдельный вектор. Когда контакты команды размещены в открытых источниках - корпоративных справочниках, публичных профилях, подписях писем - их собирают в базу. По этим номерам восстанавливают оргструктуру, переманивают людей и заваливают спамом.

Каждый из этих каналов - отдельная точка входа. Обычно у компании несколько из них работают одновременно.


Хотите понять, что именно открыто на вашем сайте прямо сейчас? Бесплатный аудит периметра - stopparsing.ru


Почему HTTPS и SSL здесь не помогают

Коротко: HTTPS шифрует передачу данных в пути. Но если API-адрес публичный и не требует авторизации - шифровать нечего, любой может спросить и получить ответ.

Это распространённое заблуждение. Стоит замочек в браузере - значит сайт защищён. Да, но от чего именно?

HTTPS защищает канал передачи: данные между браузером и сервером никто не прочитает в пути. Но если сам API-адрес публичный и открытый - шифрование тут ни при чём. Конкурент просто обращается к этому адресу напрямую и получает те же данные, что получает браузер клиента.

Это как поставить бронированную дверь с кодовым замком - и оставить ключ под ковриком рядом. Дверь надёжная. Ключ виден всем.

Подробнее о том, почему HTTPS не защищает форму на сайте, разобрано в отдельном материале о защите форм захвата.

Когда незащищённый API особенно опасен: три ситуации

Коротко: риск выше в конкретных сценариях. Если хотя бы один из них ваш - стоит разобраться с периметром.

Вы вкладываете в рекламу. Каждый посетитель с Директа стоит денег. Если система сбора данных снимает этих посетителей раньше, чем они оставили заявку - вы платите за их привлечение, а конкурент получает контакт бесплатно. Прогретый трафик, который вы оплатили, уходит к тому, кто позвонит первым.

Вы запустили новый сайт или добавили раздел. При разработке API-эндпоинты часто оставляют открытыми для удобства тестирования. После запуска про них забывают. Конкурент находит их через стандартные инструменты разведки - это сканирование публичных адресов, доступное любому.

У ваших сотрудников открытые контакты. Менеджеры с телефонами в подписях, публичные профили, корпоративные справочники - это готовая оргструктура. По таким контактам конкурент понимает, кто за что отвечает, и выходит напрямую на нужного человека - минуя входящие заявки.

Третья ситуация часто недооценивается. Компания закрывает формы на сайте и думает, что защитилась. А у пяти менеджеров номера в открытых профилях. Это два разных вектора - и закрывать нужно оба.

Как самому проверить - за несколько минут

Коротко: откройте инструменты разработчика в браузере, зайдите на свой сайт и посмотрите, какие запросы уходят при работе с формой.

Это можно сделать без программиста - в любом браузере.

  1. Откройте свой сайт в Chrome или Firefox.
  2. Нажмите F12 - откроется панель разработчика.
  3. Перейдите на вкладку Network (Сеть).
  4. Начните заполнять форму заявки.
  5. Смотрите, какие запросы появляются в списке.

Вы увидите адреса, к которым обращается сайт. Если там есть запросы, которые возвращают данные без каких-либо токенов авторизации - это потенциально открытая точка.

Оценить, насколько это критично, самостоятельно сложнее. Для этого нужен аудит: посмотреть не только на форму, но и на другие точки входа - виджеты, чаты, API мобильной версии.

Что закрыть в первую очередь

Коротко: два вектора - сайт и телефоны сотрудников. Закрывать нужно оба, иначе закрытый один оставляет открытым другой.

Когда речь о защите от парсинга, обычно думают только о сайте. Это полная картина проблемы не даёт.

Сайт. Формы захвата, виджеты обратного звонка, онлайн-чаты, персонализированные блоки - все они работают через API-запросы. Каждую точку нужно проверить. Не выборочно - все.

Телефоны сотрудников. Публичные номера менеджеров, коммерческих директоров, технических специалистов попадают в базы систем сбора данных. По таким базам восстанавливают оргструктуру, переманивают команду или заваливают спамом тех, кто по должности принимает решения о покупках.

Закрыть сайт и оставить телефоны - не защита. Это как убрать лестницу и забыть закрыть лифт.

Ещё один момент, который часто пропускают: мобильная версия. Мобильный трафик у большинства B2B-сайтов - больше половины. API для мобильного сайта или приложения - отдельный слой запросов, часто настроенный отдельно от десктопного. Как закрыть сайт от парсеров конкурентов - разобрано там.

Почему это сложнее, чем поставить одну защиту

Коротко: системы сбора данных постоянно меняют методы. Разовая настройка не решает задачу - нужен постоянный мониторинг.

Технические инструменты - капча, блокировка по IP, ограничение частоты запросов - это хорошие меры. Но не окончательные.

Как только один метод сбора данных блокируется - появляется следующий. Современные системы умеют имитировать поведение живого пользователя: двигать мышь, делать паузы между запросами, переключать вкладки. Когда антибот-защита без капчи нужна конверсионным страницам - там про это подробнее.

Поэтому защита периметра - это постоянная работа: мониторинг, добавление новых сайтов и номеров по мере роста компании, отчёты о закрытых каналах.


Следующий шаг: посмотреть, что открыто прямо сейчас

Защита начинается с понимания, что именно уязвимо. Не с замены форм и не с установки капчи - с аудита того, что видно снаружи.

Бесплатный аудит периметра делает именно это: передаёте список сайтов и телефонов сотрудников - получаете картину того, что доступно системам сбора и что нужно закрыть в первую очередь.

Без обещаний «100% защиты». Только конкретные векторы и оценка того, насколько сложнее станет конкуренту снять ваши данные.

Записаться на аудит - stopparsing.ru

Телефон: 8 910 050 01 00


Источники

  • OWASP API Security Top 10 2023 - owasp.org
  • OWASP Web Security Testing Guide - owasp.org
  • Федеральный закон №152-ФЗ «О персональных данных» - consultant.ru
  • StopParsing - защита сайта и телефонов от парсинга - stopparsing.ru
  • CERT/CC Vulnerability Notes - kb.cert.org
  • LEADLIFE - сервисы перехвата и защиты лидов - leadlife.pro