Спам на сайте

Сторона атаки.
Делается бот, т.е. программка, которая пробегает по всему интернету, каким-то образомсохраняя какие страницы уже просмотрены, и на каждой из них находит форму. Находятся все поля ввода, вбиваются спам-данные и отсылаются.

Сторона защиты.

  1. Honeypot. При показе формы все поля выстраиваются каждый раз в случайном порядке и со случайным именем, но для людей эта связь хранится через сессию на сервере, поэтому из кода невозможно понять что есть что.
    Создаётся спрятанное поле, не видимое человеку. Если его заполнит бот, то сразу идёт бан. Плюс поставить задержку - через секунду человек всю форму не заполнит.
    Через javascript создаётся дополнительная проверка. Например в cookie записывается имя сессии или хэш который можно воссоздать на серверной части. Надежда что бот не может эмулировать js.
  2. Captcha генерируется с хэшем того что написано на изображении, или просто сохраняется в сессию, потом это проверяется. Обходится либо общими усилиями, либо написанием умных нейронных сетей/экспертной системы, которую надо обучить что-бы распознавать изображение
    В качестве варианта - запрашивать контрольный вопрос - сколько будет котангенс 120 градусов и тп.
  3. Использование спам-фильтров, основанных на байесовом анализе. Для этого можно использовать существующие серверы Akismet, SpamKarma
  4. Если форму можно использовать несколько раз/от разных аккаунтов, то можно ограничить клиентов по подсети.
RSS