На днях понадобилось для одного проекта, на фреймворке Kohana, прикрутить защиту форм, от заполнения спам-ботами.
Готовых модулей не нашлось, а утруждать пользователей вводом каптчи не хотелось.
Поэтому было решено поискать на хабре готовые библиотеки или методики по борьбе со спамом. И была найдена библиотека Ботобор ( habrahabr.ru/post/135209 ), написанная пользователем Mekras.
До этого мне ни разу не приходилось писать модули для Kohana, поэтому это была возможность чуть-чуть повысить свои знания.
Вот что получилось в итоге github.com/evgentus/antispam
Установка данного модуля ничем не отличается от установки любого другого модуля.
Копируем все файлы в modules/antispam/, настраиваем конфиг, добавляем модуль в application/bootstrap.php
В конфиге все параметры подробно задокументированы.
Для того, чтобы «подготовить» форму для бота, необходимо сделать так:
Для того, чтобы проверить форму, необходимосделать так:
Была немного переписана библиотека Botobor, для удобства конфигурирования.
Если у кого есть идеи или ссылки на методики обнаружения и борьбы со спамом, оставляйте в коментариях, попробую добавить их в данный модуль.
Данный модуль предназначен для отсеивания «простых» спам-ботов, но он не спасет Вас от тех, кто намеренно хочет спамить Ваш ресурс.
Все подробности в теме Ботобор'а ( habrahabr.ru/post/135209 )
Готовых модулей не нашлось, а утруждать пользователей вводом каптчи не хотелось.
Поэтому было решено поискать на хабре готовые библиотеки или методики по борьбе со спамом. И была найдена библиотека Ботобор ( habrahabr.ru/post/135209 ), написанная пользователем Mekras.
До этого мне ни разу не приходилось писать модули для Kohana, поэтому это была возможность чуть-чуть повысить свои знания.
Вот что получилось в итоге github.com/evgentus/antispam
Установка
Установка данного модуля ничем не отличается от установки любого другого модуля.
Копируем все файлы в modules/antispam/, настраиваем конфиг, добавляем модуль в application/bootstrap.php
Конфиг
В конфиге все параметры подробно задокументированы.
Немного демонстрационного кода
Для того, чтобы «подготовить» форму для бота, необходимо сделать так:
<?php $form = getForm(); // Ваша функция генерации формы $form = Antispam::factory($form)->getForm(); // Подготовка формы для ботов echo $form; // Ваш способ показа формы ?>
Для того, чтобы проверить форму, необходимосделать так:
<?php if (Antispam::factory()->isHuman()){ // Проверка на "человечность" echo 'Форма заполнена человеком'; } else{ echo 'Форма заполнена ботом'; } ?>
В заключение
Была немного переписана библиотека Botobor, для удобства конфигурирования.
Если у кого есть идеи или ссылки на методики обнаружения и борьбы со спамом, оставляйте в коментариях, попробую добавить их в данный модуль.
Данный модуль предназначен для отсеивания «простых» спам-ботов, но он не спасет Вас от тех, кто намеренно хочет спамить Ваш ресурс.
Все подробности в теме Ботобор'а ( habrahabr.ru/post/135209 )
