За ніч на пошту прийшло сорок заявок із сайту. Спочатку ви радієте, але всі повідомлення однакові: випадкові імена, посилання на незрозумілі ресурси та рекламні пропозиції. Серед них може загубитися справжній клієнт, який просить прорахувати послугу. Спам із форми на сайті не обов'язково означає, що ресурс зламали. Часто це автоматичні програми, які надсилають повідомлення через відкриті форми.
Спам із форми на сайті: з чого почати захист
Спочатку перевірте, які повідомлення надходять, як часто й через яку форму. Потім додайте базові перевірки на сервері, приховане контрольне поле або обмеження частоти запитів. За потреби використовуйте CAPTCHA чи спеціалізований захист. Після кожної зміни перевіряйте, що справжній користувач усе ще може надіслати заявку з телефону.
З'ясуйте, звідки приходять повідомлення
Не кожен рекламний лист у пошті надходить через ваш сайт.
Спочатку знайдіть повідомлення, яке точно створене контактною формою. Воно може мати стандартну тему, назву сторінки або службовий ідентифікатор.
Порівняйте його зі спамом.
Якщо теми, формат і поля збігаються, імовірно, повідомлення надходять через ту саму інтеграцію.
Якщо у вас є доступ до журналів сервера чи сервісу обробки заявок, перевірте, чи реєструються відповідні відправлення.
Не потрібно відкривати підозрілі посилання, відповідати на повідомлення або завантажувати вкладення.
Збережіть кілька прикладів без зайвих персональних даних. Запишіть час надходження й сторінку, якщо вона відома.
Це допоможе розробнику зрозуміти, чи проблема локальна, чи зачіпає кілька форм.
Також перевірте, чи не з'явилися випадково дублікати форми після оновлення сайту.
Іноді проблема полягає не в спамі, а в повторному відправленні одного повідомлення через технічну помилку.
Чому звичайна перевірка полів не зупиняє ботів
Форма може вимагати заповнити ім'я, email і текст повідомлення. Але автоматична програма теж здатна заповнити ці поля.
Навіть перевірку правильності формату пошти можна пройти без особливих труднощів.
Тому захист має працювати не лише в браузері, а й на сервері, який приймає запит.
Сервер повинен перевіряти допустимі поля, обмеження довжини тексту й коректність даних.
Не можна покладатися лише на JavaScript-перевірки, які бачить користувач. Автоматичний запит може взагалі не відкривати вашу сторінку в браузері.
Також не варто довіряти будь-яким прихованим значенням, що надходять із форми. Їх можна змінити.
Окремо потрібно безпечно обробляти текст користувача, щоб він не перетворювався на виконуваний код чи небезпечний вміст листа.
Валідація захищає структуру й обробку даних, але сама по собі не визначає, чи повідомлення надіслала людина.
Що таке honeypot і як він працює
Honeypot у контактній формі – це додаткове поле, яке звичайному відвідувачу не потрібно заповнювати.
Деякі прості боти автоматично заповнюють усі доступні поля. Якщо приховане контрольне поле отримало значення, сервер може вважати запит підозрілим.
Перевага методу – користувачу не потрібно розв'язувати головоломки або проходити додаткові перевірки.
Але є обмеження.
Складніші боти можуть розпізнавати такі поля й залишати їх порожніми. Крім того, невдала реалізація може створити проблеми з доступністю для людей, які користуються допоміжними технологіями.
Тому поле потрібно правильно приховувати, не порушуючи логіку навігації та роботи з формою.
Honeypot не є універсальним захистом.
Його доцільно розглядати як один із простих рівнів перевірки, а не як гарантію повної відсутності спаму.
CAPTCHA, обмеження запитів і фільтрація
Коли спаму багато, можуть знадобитися додаткові механізми.
CAPTCHA намагається відрізнити автоматизовані запити від реальних взаємодій. Деякі рішення показують завдання користувачу, інші працюють переважно без видимої перевірки.
Обмеження частоти запитів, або rate limiting, не дозволяє надсилати необмежену кількість повідомлень за короткий проміжок часу відповідно до налаштованих правил.
Фільтрація може виявляти підозрілі посилання, повторюваний текст або інші ознаки масового надсилання.
Кожен підхід має недоліки.
| Метод | Що допомагає зупинити | Основне обмеження |
|---|---|---|
| Перевірка полів на сервері | Некоректні й небезпечні дані | Не визначає всіх ботів |
| Honeypot | Частину простих автоматичних відправлень | Складні боти можуть його оминати |
| Rate limiting | Надмірну кількість запитів | Може зачепити легітимних користувачів |
| CAPTCHA | Частину автоматизованих звернень | Може ускладнювати доступність |
| Фільтри повідомлень | Повторюваний і підозрілий вміст | Іноді помилково позначають справжні заявки |
Не обов'язково вмикати все одночасно.
Спочатку визначте, який саме спам отримуєте, і застосуйте найменш обтяжливі перевірки, які допомагають його обмежити.
Чи може захист заблокувати справжнього клієнта?
Так. І це одна з причин, чому захист потрібно тестувати.
Наприклад, надто суворе обмеження запитів може вплинути на людей, які користуються спільною мережею або перебувають за одним зовнішнім IP.
CAPTCHA може створити труднощі на старіших пристроях, за повільного з'єднання або для людей із певними обмеженнями.
Фільтр за текстом може сприйняти реальну заявку як спам лише тому, що в ній є посилання.
Тому не варто автоматично видаляти кожне підозріле повідомлення без можливості перевірки, якщо ці звернення важливі для бізнесу.
Краще передбачити безпечний спосіб перегляду відфільтрованих заявок, коли це відповідає вашому процесу та вимогам приватності.
Після налаштування захисту надішліть кілька тестових повідомлень із різними нормальними текстами.
Перевірте українські й іспанські символи, довші повідомлення та звичайні посилання, якщо такі дані дозволені вашою формою.
Справжня заявка не повинна зникати без зрозумілого повідомлення про помилку.
Чому не варто блокувати всі іноземні IP
Якщо ваш бізнес працює у Валенсії, може виникнути спокуса дозволити заявки лише з іспанських адрес.
Але клієнт може бути туристом, іноземцем, користуватися VPN або мобільним інтернетом із незвичною маршрутизацією.
Українці, які живуть в Іспанії, теж можуть звертатися з різних країн під час подорожей.
Блокування за географією може випадково відрізати саме тих людей, яким потрібна ваша послуга.
Не слід також забороняти повідомлення певною мовою лише тому, що спам часто надходить англійською.
Нормальні клієнти можуть використовувати англійську навіть на іспаномовному сайті.
Якщо у вас є підстави застосовувати географічні правила безпеки, спочатку перевірте реальні дані й оцініть наслідки.
Не перетворюйте тимчасову проблему зі спамом на постійне обмеження для клієнтів.
Як не втратити заявки під час налаштування
Перед технічними змінами перевірте поточний шлях повідомлень.
Визначте, чи зберігаються вони в базі даних, чи одразу пересилаються на email.
Якщо форма тільки надсилає листи, збій поштового сервісу може призвести до втрати звернення.
За потреби можна передбачити механізм збереження заявки та повторної відправки сповіщення. Але тоді необхідно продумати захист персональних даних, обмеження доступу й терміни зберігання.
Не накопичуйте інформацію без потреби.
Після внесення змін проведіть тест із телефону й комп'ютера. Перевірте, що підтвердження відправлення з'являється лише після успішної обробки запиту.
Переконайтеся, що повідомлення приходить у правильну скриньку.
Якщо форму тимчасово вимкнули, залиште робочий контакт, наприклад WhatsApp.
Не потрібно змушувати людей проходити кілька складних перевірок, коли вони хочуть лише запитати про ваші послуги.
Коли не потрібно купувати CAPTCHA чи новий сайт
Окремий платний сервіс захисту не завжди потрібен.
Якщо спам надходить рідко, спробуйте базову серверну валідацію, honeypot і обґрунтоване обмеження частоти запитів.
Можливо, цього буде достатньо.
Не потрібно також переносити сайт на іншу технологію лише через те, що форма почала отримувати автоматичні повідомлення.
Проблема може виникати як у простому лендингу, так і у великому застосунку.
У Skyba Tech ми використовуємо Next.js, але сама технологія не гарантує відсутності ботів. Захист потрібно продумувати на рівні конкретної форми та її серверної обробки.
Якщо у вас немає великого потоку звернень, не поспішайте купувати складну систему автоматизації.
Спам із форми на сайті варто зупиняти поступово, постійно перевіряючи, що справжній клієнт може з вами зв'язатися.
Якщо пошта переповнена автоматичними заявками, напишіть Skyba Tech у WhatsApp. Допоможемо визначити, на якому рівні потрібен захист.