Недавно столкнулся с очень раздражающей проблемой – на моём сайте появилось большое количество спама и постоянно росло, специальные боты-спамеры регистрировались на сайте и оставляли спам в комментариях, старались наставить кучу ссылок (но, благо что я запретил вывод HTML в комментариях). Я всегда знал, что защита от ботов на сайте – это не последнее дело, но пренебрегал этим до последнего, как говорится “пока петух не клюнет…”.
Сначала думал создать каптчу на основе генерирования случайных чисел и динамически генерировать изображение с кодом (на PHP) или несложный примерчик типа ”14+2=”. Но, как показывают отзывы простых юзеров, ручной ввод каптчи раздражает некоторых из них, и я захотел создать защиту от ботов-спамеров незаметно для пользователя.
Реализация данной задачи оказалась довольно простой, я использовал принцип простого примера типа ”14+2=”, но вместо расчёта пользователя и ручного ввода, я использовал JavaScript. Дело в том, что выполнение JavaScript ботом – это уже само по себе хорошая преграда для автопостинга. А к тому же, для обхода данной защиты требуется поддержка ботом Cookie, иначе, ни один из 199998 вариантов ответа не будет верным. И, для того, что бы отправить спам, боту нужно сначала получить форму с простым примером и Cookie, а только потом отправить форму с ответом и не забыть про Cookie.