I live ExBB and CMS Limbo! » Форумы и сайты » Limbo CMS » Методы защиты веб-формы без капчи

Страниц (1): [1]
 

1. технарь - 18 января 2012 — 00:39 - перейти к сообщению
Минимальное время заполнения формы

Суть метода заключается в том, что сервер замечает время создания формы. Если пользователь заполнил форму меньше чем за определённое время, то он считается ботом. Время можно варьировать в зависимости от сложности формы.
Верно также, что если форма не была заполнена слишком долго, то что-то не так.

Скрытое поле

Этот метод может показаться странным, но он, похоже, работает. К форме добавляется скрытое поле (скрытое в смысле display:none). Если поле заполнено, то пользователь считается ботом.
Удивительно, но многие простенькие боты заполняют все неизвестные поля.

Обфускация или шифрование HTML

Исходный код страницы является, по сути, вызовом javascript функции вроде document.write( decode( encodedHTML ) ), где encodedHTML — это как-то зашифрованный HTML.

Методы шифрования могут варьироваться от простого эскейпирования значений буковок (буква превращается '%код' ) до некоторых алгоритмов шифрования (например, простенький XOR).
В интернете есть много готовых решений, например, вот тут.

Блокирование определённых user-agent

Некоторые боты используют весьма специфические заголовки user-agent. Можно блокировать запросы не содержащие user-agent вообще или содержащие заведомо плохой заголовок.

В интернете есть списки таких заголовков. Вот, например, от некого Нила Гантона.

«Ловушка» для ботов

Суть этого метода заключается в создании специального раздела сайта вроде "/bot/guestbook". Ссылка на этот раздел не видна для пользователя, однако если бот зайдёт в этот раздел и сделает там хоть что-нибудь, то его IP тут же блокируется.
Раздел должен содержать лакомые для бота слова вроде «email», «submit», «add comment» и тому подобные. Файл «robots.txt» предупреждает хороших ботов.

Хеширование формы (BarsMonster )

При сабмите формы на сервер вычисляется хеш полей формы и добавляется в одно из специальных скрытых полей. Сервер проверяет значение хеша.

Использование прозрачных кнопок (BarsMonster )

У формы есть несколько кнопок типа <input type="image". Лишь на одной из картинок написан текст, остальные — прозрачные. Для сабмита пользователь должен нажать на картинку с текстом.

Динамическое создание формы (maxshopen )

Сама форма полностью создаётся javascript-методом динамчески. Таким образом, форму может увидить лишь пользователь, у которого отработал соответствующий скрипт.

Использование сторонних сервисов (le0pard )

Можно туннелировать трафик через специальный сервис, предназначенный для анализа контента на спам. Примером такого сервиса может быть Akismet

Гибридный подход

По умолчанию форма защищена каким-либо javascript-методом (динамическое создание формы или шифрование данных) или методом из приведённых выше. Если форма была засабмичена некорректно, то возвращается ошибка и просьба заполнить не очень простую капчу.

«Горшочек с медом».

Смысл метода Honeypot прост, как и его реализация. Помимо настоящих полей ввода, делаются скрытые поля. Пользователь их не видит, следовательно, не может их заполнить. Если поле заполнено, комментарий не нужно добавлять. Почему пользователь не заполняет поле понятно, а почему спам-бот заполняет? В ловушке должна быть приманка. В качестве приманки выступает значение атрибута name.
code:
<input type="input" name="email" value="" />
<input type="input" name="blablabla" value="" />


Бот, очевидно, умеет находить нужные поля и правильно их заполнять. Бот находит поле email, считает, что дело в шляпе, вбивает в него адрес (кстати, валидный). Заполняет тело комментария, отправляет форму. Обрабатывающий скрипт берет данные из поля blablabla. Это настоящие данные с которыми нужно работать. Скрипт также проверяет, есть ли что-то в поле email. Если есть, комментарий просто не будет добавлен в базу.

Несколько штрихов. Я не знаю, как работают боты. Но думаю, они не дураки. Если поле помечено, как hidden, бот может решить, что ловушка и искать другое поле. Поэтому я скрыл поле с помощью CSS, при этом не присваивал отдельный класс, а использовал селектор [name="email"]. Даже такого простого приема хватило, чтобы за сутки не было ни одного спам-комментария.
2. Гость - 7 марта 2016 — 21:15 - перейти к сообщению
Приветствую уважаемого Технаря! Спасибо, по поводу «Горшочек с медом» инфа впечатляющая.
В связи с этим вопрос, как применить поля ввода (в ввиде «Горшочка с медом» в регистрационной форме сайта? И стоит ли?
Почему задаю вопрос, потому что погуглив по интересующему вопросу, конкретного ответа не нашел. Спасибо за ответ.
3. технарь - 8 марта 2016 — 02:53 - перейти к сообщению
Иван Иванов
 Цитата:
спасибо, по поводу «Горшочек с медом» инфа впечатляющая.
Инфа не моя - скопипастил где-то в сети, так что на авторство не претендую.

Этот тип защиты применён на этом форуме, но ещё ни одной сработки этого способа не зафиксировал. И дело тут не в том, что этот метод не срабатывает - просто до него срабатывает другой метод. Я чуть изменил форму регистрации добавив туда чекбокс, который нужно установить. Боты про него ничего не знают и на самом первом этапе отсеиваются практически все.
4. Гость - 8 марта 2016 — 13:26 - перейти к сообщению
Привет технарь! Спасибо за ответ.
Извини уж за преамбулу и отступление от темы диалога.. знаешь меня в большинстве случаев просто удивляет почему профессионалы, специалисты такого класса как ты, останавливают свой
выбор на столь непопулярных "движках" ExBB ? Я такой же админ как и ты, но работаю на "движке" smf. Но! ) до профессионализма, мне скажем так.. как до Луны. Безусловно, против лома нет приема ) те же ботописатели тоже не сидят сложа руки.. и рано или поздно такое может случиться не только с ExBB, но и с тем же smf. Боле всего, меня привлекла кажущаяся простота концепции "горшка с медом". В свое время, мне также пришлось испытать это безумное удовольствие (нашествие ботов).. Мой методы борьбы с ними.. отличался от других, я не старался устанавливать различного рода капчи и им подобные вещи, а использовал текстовые вопросы постоянно меняя их. Метода проста, эффективна кол-во ботов резко уменьшилось. Но найдя инфу (благодаря твоему сайту) загорелся идеей "горшечка с медом". Ну вот так ).
5. технарь - 8 марта 2016 — 14:00 - перейти к сообщению
 Цитата от Иван Иванов:
специалисты такого класса как ты
Вы мне льстите. Я вообще не специалист. Когда то давно появилась необходимость в форуме чисто для себя (как онлайн записная книжка). Мой провайдер интернета предоставлял небольшое место под хостинг без поддержки SQL - вот выбор и пал на ExBB как самый продвинутый форум на файлах. Потом начал перестраивать форум под себя, разбираться как устроен и пошло поехало. Сейчас кстати уже мало в коде копаюсь - как то подугас интерес.

 Цитата от Иван Иванов:
загорелся идеей "горшечка с медом"
Пробуйте - там в принципе нет ничего особо сложного. Будут вопросы - создавайте здесь новую тему, будем разбираться вместе. Улыбка
6. Гость - 8 марта 2016 — 15:54 - перейти к сообщению
Спасибо! почему бы и не создать тему? Создам. Льстить не моих принципах, совсем нет!
просто я отдаю должное человеку у которого можно кое чему поучиться, почерпнуть полезное.
В конце-концов, это интересно! Разве не так? Впрочем это тема отдельного разговора. Который надеюсь продолжится ). Спасибо Вам.
Хотелось бы остановиться на ряде моментов.. у вас "двиг" на ExBB, уместно ли будет с моей стороны в той же теме развивать идею о применимости "горшочка меда" к совсем постороннему "движку"? Еще вопрос, я захожу на сайт через аккаунт "В контакте", что не совсем этично с моей стороны, поэтому я хочу с вашего позволения официально зарегистрироваться вот с таким ником (логином) dangers.
Будет ли мне это позволено? Никаких подвохов с моей стороны не будет, я обычный человек с весьма разносторонними интересами.
7. технарь - 8 марта 2016 — 17:11 - перейти к сообщению
 Цитата от Иван Иванов:
к совсем постороннему "движку"
Ну раздел же есть по SMF - вот там и создавайте.
 Цитата от Иван Иванов:
Будет ли мне это позволено?
Всё что не запрещено - разрешено. Улыбка
8. dangers - 8 марта 2016 — 17:57 - перейти к сообщению
Цит. Всё что не запрещено - разрешено.

как в robots Улыбка

Powered by ExBB v1.1.180311