Вычисляем плохих ботов
Хороший бот никогда не полезет туда, где ему запрещено через robots.txt. Этим можно воспользоваться. Хороший бот никогда не станет заполнят форму и нажимать кнопку. А вот плохим ботам, типа XRumer, только дай поспамить. А ведь это отличная идея! Хороший бот игнорирует кукисы. Неплохим вариантом будет предложить кукис в запрещенной для ботов директории. Если он ее примет, то на основе этой куки можно попробовать ему подсунуть сайт-ловушку, в которой структура бесконечно вложена и посмотреть — он поймет это или нет. Вот черт, получается что Гуглбот — плохой, злой? Ведь он умеет ходить по таким ссылкам и его можно случайно забанить. Нет, это недопустимо! Лучше сделать так — в директорию, запрещенную для роботов, добавим ссылку или даже редирект на javascript. Если бот выполнит и совершит переход/редирект — то это точно очень плохой и злой бот. Прозрачная картинка на весь экран? Белые буквы на белом фоне? Скрытые поля формы? Создаем директорию, которая будет закрыта для ботов через robots.txt. А еще я советую сразу блокировать все диапазоны разных ЦОД от посещений вашего сайта. Все равно через их IP, выделяемые под арендованные сервера, нормальный посетитель ходить не будет, и эта мера срезает сразу 80% спама через формы.
Это ничуть не руководство к действию, а только лишь некоторые мои умозаключения, которые не являются истиной в последней инстанции.
Итак, давайте рассмотрим ситуацию, когда по сайту лазят боты и занимаются там разными неприглядными делами: сканируют, спамят через формы, грабят контент и так далее. Но по сайту могут пройтись и хорошие роботы — с поисковых систем, которых обижать нельзя. Необходимо определить плохих ботов и заблокировать их.
Запретный плод сладок
Создаем директорию, которую закрываем через robots.txt и делаем невидимую ссылку или ссылку через прозрачную картинку 1×1 пиксель на какую-то страницу в эту директорию.
Человек туда не попадет, а хорошие роботы запрет не нарушат,а плохие — пополнят наш список.Заполните эту форму
Давайте возьмем и поместим на сайт форму-обманку для регистрации или отправки комментария? А выше нее поставим картинку в которой напишем — это ловушка для ботов, если вы отправите эту форму — мы вас забаним.
Таким образом можно отсечь спамботов. И неграмотных, невнимательных посетителей.Может печеньку?
Если поймет — то осторожно, это умный и хитрый бот. А если не понимает — его можно смело банить на 100-й попытке зайти вглубь сайта.Хорошие боты javascript не трогают!
Дополнительные меры защиты
Все это поможет определить кто же у нас на сайте — человек или бот. Возможно капча на флеше? Буду рад если предложите свои варианты.Заключение
Сделаем две скрытые ссылки на две страницы внутри этой директории, одну обычную и вторую через javascript. Подсовываем кукис.
На страницах мы предложим заполнить форму для регистрации. С сообщением о том, что это приведет к бану. И скрытым полем, лучше всего если это поле для ввода URL сайта.
Если не смотря на все эти меры, форма отправлена и кука присутствует — поздравляю, вы нашли злого, умного и плохого бота!
Вы можете отслеживать комментарии к этой записи с помощью RSS 2.0. Комментарии и эхо-тестирование не разрешены.


> блокировать все диапазоны разных ЦОД от
> посещений вашего сайта. Все равно через их IP
> выделяемые под арендованные сервера, нормальный
> посетитель ходить не будет
А вот это слишком радикально. Ничто не мешает нормальному продвинутому клиенту на арендованном сервере поднять прокси и ходить читать блоги через него (например, если у него зарубежный трафик платный, а локальный — нет).
Насчет
>сразу блокировать все диапазоны разных ЦОД от посещений вашего сайта.
вы погорячились. Я например, часто выхожу в интернет через прокси, организованном на моем vds-хостинге (купленного именно с этой целью), что ж меня банить сразу?