Основные методы защиты
Существует несколько эффективных способов защиты форм от автоматических спам-ботов:
Поля-приманки (honeypot)
Скрытые поля, которые человек не видит, но бот заполняет автоматически.
Проверка времени заполнения
Контроль интервала между открытием формы и её отправкой.
Анализ HTTP-заголовков
Проверка корректности REFERER и других заголовков.
Переименование полей
Замена стандартных названий полей (email, name) на случайные идентификаторы.
Практическая реализация
Пример с полями-приманками
php
// Создание формы
require 'botobor.php';
$html = $form->getHTML();
$bform = new Botobor_Form($html);
$html = $bform->getCode();// Обработка отправки
if (Botobor_Keeper::isHuman()) {
// Обработка данных формы
}
Настройка параметров защиты
php
// Настройка параметров
$bform->setCheck('honeypots', false); // отключить поля-приманки
$bform->setDelay(2); // минимальное время заполнения (сек)
$bform->setLifetime(60); // максимальное время жизни формы (мин)
Дополнительные методы защиты
Автоматическая CAPTCHA
Создание скрытого поля с заданным значением через JavaScript.
Блокировка по IP
Ограничение количества запросов с одного IP-адреса.
Проверка активности
Анализ поведения пользователя при заполнении формы.
Рекомендации по реализации
Используйте комбинацию методов защиты
Настройте логирование попыток спама
Регулярно обновляйте защитные механизмы
Тестируйте работу форм реальными пользователями
Пример простой защиты
php
// Простая проверка на спам
if (isset($_POST['hidden_field'])) {
die("Спам-атака обнаружена");
}// Проверка времени заполнения
$form_time = $_SESSION['form_time'];
$current_time = time();
if ($current_time - $form_time < 2) {
die("Слишком быстро заполнена форма");
}
Такой подход позволит эффективно защитить ваши формы от большинства спам-ботов, при этом не создавая неудобств реальным пользователям.






