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

1. Добавить пустое скрытое поле с названим, близким к обычным названиям полей форм, типа email, url, text и т.п. Эвристические спамилки будут пытаться это поле заполнить, так их легко отловить.
2. Дополнительное поле можно сделать в виде обычного элемента инпут, но скрыть его в невидимый див, тогда для спамилки оно будет как бы обычным полем и оно будет заполняться.
3. Добавить в форму много лишних полей, невидимых пользователю. Некоторые спамилки пытаются вычислить, какую форму из присутсвующих на странице нужно заполнять, если полей мало – то это скорей всего какая-то поисковая форма, если полей слишком много, то это может быть форма какого-то профайла.
4. Жабаскриптом по мышиному событию заполнять какое-то поле хешем от времени (в часах/днях) и ип адреса. Тут получается сразу много видов защиты: во-первых спамилка не двигает мышью, то есть имеется большая вероятность, что хеш вообще не будет вычислен и заполнен. Во-вторых, сканер форм может ходить не с того адреса, с которого будет идти сабмит, то есть даже вычисленный и заполненный хэш будет неправильный, для другого ип. В-третьих, хеш потеряет актуальность через пару часов, то есть если даже спамер пробъёт форму вручную, то он не сможет сохранить её в базу для последующего проспама автоматом. В-четвертых, никто не будет морочиться и писать вычислитель хэша для одного сайта, если это не что-то вроде дигга.
5. Готовые решения: скрипт Bad Behavior, который проверяет запрос на наличие особенностей присущих указанному в нём юзерагенту. Если запрос сформирован небрежно, то он не пройдёт. Недостаток состоит в том, что сам этот скрипт не свободен от глюков на 100%, например он мне почему-то не давал зайти в админку Вордпресса, при переходе из ссылки в письме из Outlook Express. Акисмет – теоретически его можно попробовать отломать от вордпресса и прицепить куда-то ещё. Плохо только, что в нём процент ложных срабатываний намного выше, чем хотелось бы. Например, когда я только завёл этот блог, Димок сделал доброе дело – по моей просьбе дал мне список полезных плагинов для блога. Со ссылками, больше 3х штук. :) С тех пор я его комменты должен из спама выковыривать.
6. Спецфича для блогов – проверять, является ли то что указывают в качестве урла блогом, например по присутствию на странице ссылки на фидбернер. И давать постить только если у фида скажем больше 30 подписчиков. А то мне иногда пишут какой-нибудь коммент, который вроде осмыслен и жалко его стирать, но на другом конце оказывается какой-нибудь сайт с вирусом или с порнухой/покемонами.
Если реализовать хотя бы часть из этого, то пока не появится новое поколение спамилок – капчу можно не использовать. Кстати, про капчи – у меня давно есть идея-фикс: сделать капчу с задачами из задачника Сканави. :) Выбрать простенькие задачи, с однозначным цифровым ответом. Я даже сам задачник скачал, но дальше дело пока не зашло. Правда непонятно, захотят ли люди способные эти задачи решить что-то коммментировать.

Как вам такая капча? :)

skanavi1-099.png

Похожие посты