Артём Мáлков

Идея для хорошего антиспама (теория)

4 мая2 комм

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

Что касается ботов – тут все весьма интересно. Принцип работы у них следующий: они заходят на сайт, находят на нем все возможные формы, заполняют в них поля (типы полей чаще всего легко определить, например, поле с name="email" требует ввода e-mail адреса) по шаблону и отправляют спам-сообщение.

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

Почему скрытое, и зачем оно нужно? А для того, чтобы сделать проверку этого поля. Если оно заполнено (а заполнить его могут только боты, так как скрытое поле не видно людям), то выдаем ошибку и не отправляем письмо.

Для примера, поле может выглядеть так:

<div style="display: none">

	<input type="text" name="nickname" class="input" value="" />

</div> 

Важно, чтобы тип поля был не hidden – такие поля боты не заполняют. Например, на PHP получаете значение этого поля, и если оно отлично от пустоты (значит, отправитель – бот), и запрещаете отправку формы.

Эта статья несет чисто теоретические примеры решения проблемы, в следующих уроках я покажу, как это можно сделать практически для различных CMS.

Рекомендуем к просмотру
Антиспам для модуля Formit для MODX Revo
Статьи и советы
Проверяем e-mail на валидность на PHP/jQuery
Модули и скрипты
Проверка совпадения 2-х полей input на jQuery
Модули и скрипты
2
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    766
      •  Гости
    23 апр в 15:06

    Ждем урока по подобной функции в DLE )

    • 2
    766
      •  Гости
    4 мая в 22:49

    Ну у данного способа есть недостаток - если нужно заспамить конкретный сайт, то это быстро вычислят.

    Вообще любые способы делать hidden-поля или еще что-то не имеют смысла, т.к. спамеры обычно смотрят на данные форм

    То есть сначала форма отправляется как обычно, челик смотрит, в каком виде приходить должно, и потом спамит

    Вот сделать на сервере какой-то рандомный токен, добавлять его в поле и потом проверять - возможно

    От спамеров общего плана можно тупо переименовать все поля, и все будет относительно нормально

Подняться наверх
«Pandoge» - помощник вебмастера