Здравствуйте.
Как защитить сайт от ботов и автоматов?
Базовые способы защиты обычно не справляются. Они только кошмарят реальных людей.
Например капча при регистрации (даже гугл капча) не работают, есть сервисы, которые за копейки решают капчи. Для брута они не выгодны, но если кому то нужно сделать несколько десятков тысяч спамных аккаунтов, капча его не остановит. То же самое касается и ограничения регистраций с одного IP адреса, это только будет кошмарить пользователей, но не будет мешать негодяям.
Так же системы автоматизированного управления (такие, как, например, система масслайкинга в том же инстаграме). Как защититься от них? Ставить ограничение на максимальное количество действий в единицу времени - ставится просто дилей и система работает. Запрет на вход с другого устройства - обходится, но раздражает реальных пользователей. И т.д.
Есть ли где продвинутые способы защиты, которые не обходятся? Или что бы их обойти требуется приложить насколько много усилий, что это не сопоставимо с профитом.
Интересно. Предполагаю что этот способ сработает в случае с ботами, которые спамят/регистрируются на всех сайтах, где есть форма. Но скорей всего не сработает, если регбот будет сделан конкретно под сайт (например, как делают автореги для инстаграм), так как там разработчик просто вручную задаст, как попасть на форму. Верно ли предположение?
RigidStyle, Верно.
Если конкретно под сайт нужно будет делать спамеру, то уже и другие трудозатраты по защите.
Если пойдёт спам с конкретным текстом - добавляете ключевики в проверку полей.
Дальше - больше! ;)
А если рег-бот будет сделан на Селениуме каком-нибудь, как это делается очень часто? :) Он легко отработает все эти аякс-запросы и не заметит, что они там были :)
SEOD, для начала - нужно, чтобы боты заметили сайт с формой ;)
А вот как заметят, там уже совсем другая история....
Заполнили поля формы быстрее 5 секунд (после запроса к генерации через AJAX) - получите каптчу сообщение "Что-то пошло не так!" с занесением IP-шника (или даже подсети класса C) в BLOCK-лист на час. (это самое простое правило поведенческого фильтра)
xmoonlight, изучал вашу статью про защиту в блоге, такой вопрос: 1) первые 2 пункта уместно использовать вообще везде? Т.е например и на обычном лендинге с формами и на более крупных сайтах? 2) Там указаны правила для апач, а для нджинкс всё тоже самое? 3) Я правильно понимаю, что сам htaccess это как бы настройки сервера "для смертных", т.е все можно настроить и в самой серверной программе?
Обходится дилеем или разбавлением действий. Из разряда "лайк, какое то действие из 10 заданных, которые выбираются рандомно, снова лайк", дилей тоже выставляется рандомно в диапазоне времени. Можно поставить лимит на действия, как в фейсбуке, не более 35 друзей в день можно добавить, но это не спасает от ботоводства, а просто уменьшает активность ботов.
Много чего перепробовал, остановился на автозагрузке формы через ajax (можно и по нажатию сделать) + контроль времени заполнения (если форма отправлена менее чем через 10 сек - не принимать).
Понятно, что от написания бота под вас не спасет, но от обычных ботов нормально помогает пока что.