Враг не пройдет. Как остановить спам боты.
То ли мне спам-боты надоели, толи просто решил сделать что-то большое и чистое. В итоге размышлений родились мысли. Первая, о том, что хочется есть, а вторая, что думать надо усердней. Стал думать усердней, и набросал несколько вариантов защиты:
Защита от ботов, ориентированных на CMS, и названия полей
Тут все относительно просто. Достаточно выделиться из серой массы, и количество ботов снижается почти до нуля. Пример: на странице регистрации можно присваивать id-шникам input’ов случайные значения, подписи к ним выводить с помощью JavaScript, и между некоторыми вставлять поддельные input’ы. Дополнительно можно проверять время заполнения формы, и нажатие клавиш.
Защита от ботов, которых пишут “под вас”
Вот несколько способов пришедших на ум.
Различение формы предметов, и их цвета
Найти на картинке, покрытой мелкими треугольниками, овалами, и прочими линиями квадрат, и указать его цвет.
Плюсы:
- простота реализации
- простота прохождения людьми
Минусы:
- узкий словарь (основных цветов и форм мало, чтобы предотвратить брутфорс)
Разбор сложных образов
Указать пол человека, изображенного на фотографии.
Плюсы:
- вряд ли боты в скором времени станут такими умными
- простота реализации самого механизма выбора
Минусы:
- тяжело составить такой словарь
Если придумаете, то, пожалуйста, скажите мне . Только гугловский поиск по медиа-контенту не предлагайте, так как он не очень релевантный.
Конструирование сложных образов из кусков
Собирание пазла.
Плюсы:
- очень широкий словарь (результатом конструирования может быть что угодно).
- тяжесть брутфорса (6 кусков – 720 вариантов)
- возможность увеличить защиту от брутфорса, если пересылать изменения (куда какой кусок положили) на каждом шаге, а не результат
Минусы:
- пока не придумал ничего, кроме необходимости реализации самого механизма конструирования
Заключение:
Вывод простой – серебрянной пули, как всегда, не получилось, но идея с пазлом мне нравится.
Посмотрите на Asirra от Microsoft.
Там используется уже готовая база, и из-за ее размеров (3 миллиона изображений), едва ли спамеры смогут распознать всю базу.
А еще и побочная польза, кошек и собак раздают в хорошие руки
с ментовской базой такое точно не пройдет
хотя там можно добавить ссылку “Сообщить о местонахождении”.
Проблема базы вопросов в стоимости, т.к. база должна быть уникальной. Да и не любой человек ответит на вопрос.
Недостаток собирания паззла – время. Посетитель-человек просто уйдёт (:
С любыми не-генерируемыми образами проблема – после составления базы объектов спам начнёт литься горой.
Можно было бы использовать математические примеры, но их решение легко автоматизируется…
Есть смысл сделать огромную базу различных вопросов (обычный текст). Если на этот вопрос кто-то удачно ответил – он просто удаляется из базы.
Если ментовскую базу взяьб, то есть шанс ее своей фоткой пополнить, а я свои фото незнакомым не даю.
Словарь для определения пола можно было бы сделать из каких-нибудь ментовских баз данных.
Какие-то из таких баз в открытом доступе есть – google mashup такой был, “места проживания sex offenders”, там были фотки.
Правда там почти все мужики.
Фотографий может быть несколько. Часть из них может изображать предметы, а не людей.
> указать пол человека
Пол человека бывает всего двух видов – мужской и женский. Вероятность угадать captch’у составляет аж 50%!