Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Как защититься от ботов без капчи?

#php #безопасность #веб_программирование


На сайте (PHP) есть регистрация, в ней не используется капча и, согласно ТЗ, внедрить
ее нельзя. В форме регистрации используются уникальные поля, при отправке формы происходит
проверка на частоту запросов с ip адреса источника. Но что, если ботнет в несколько
тысяч машин будет слать запросы на регистрацию? Как это предотвратить?
    


Ответы

Ответ 1



Если переформулировать заголовок на более осмысленный, то ответ становится очевиден: Как защититься от ботов без капчи? Нельзя. В общем случае капча - это единственный способ отличить бота от человека. Нет капчи - нет защиты. Просто как 2х2. В конкретных же случаях ответ будет не столь однозначный, но весьма неприятный - думать Этот способ помогает при решении любых сложных вопросов. К сожалению, никаких готовых рецептов не существует, и полагать что достаточно написать вопрос в интернете как разу набегут специалисты и решат за тебя проблему, достаточно наивно. Применять можно лишь какие-то частные решения, но при этом не ту ерунду которую советуют в других ответах, типа HTTP заголовков или JS (самый ад - это слежка за пользователем на клиенте. Впрочем, если задача вместе с ботами отсеять и честных посетителей, то способ вполне годится), а сначала смоделировать предполагаемое поведение как честного юзера, так и атакующего злоумышленника. И строить защиту на основе этих теоретических моделей, корректируя их по результатам практического использования.

Ответ 2



Не реклама (хотя может и да, но мне никто не платил за неё). Distil Networks - то, что нужно. Я как-то пытался пробиться на защищённый ими сайт, поэтому на своём опыте могу сказать что это работает. Но если кто-то поставит себе задачу пробиться именно на Ваш сайт - ничто не спасёт: Дистил я обошёл (с трудом), капчу тоже (рукапча, например), скрытые поля не скроются, если снифать запросы (тут же фиксятся проблемы "нечеловеческих" заголовков); проверки JS обходятся тем же фантомом; проверка действий пользователя так же отслеживается и воспроизводится. Хорошая новость в том, что если нет цели атаковать именно Ваш ресурс, Distil Networks вполне поможет: проверка IP, JS, поведенческий фактор, что там ещё. Вишенкой является то, что боты будут атаковать их сервера, т. к. делегируется в DNS. А если платить неохота, придётся самим проверять все факторы выше.

Ответ 3



От направленной атаки спасет только сервис защиты от DDoS. От множественной регистрации поможет (но не на 100% спасет) следующее: Проверка валидности заголовков, формируемых баузером, например User-Agent. Крайне слабая защита, но от некоторых ботов защитит; Внедрение скрытых проверочных полей, которые не должны быть заполнены. Чем больше вариантов скрытия вы придумаете, тем лучше; Заполнение некоторых полей через JS. Многие боты пока этого не умеют, да и наличие JS это дополнительные ресурсы; Наблюдение за поведением пользователя через JS. Далеко не все боты имеют JS и умеют имитировать действия поьзователя (движение мышью, прокрутка, нажатия на клавиши и т. д.); Ну и старая добрая постмодерация с возможностью ее включения на диапазоны IP и по условиям проверки HTTP-заголовков.

Комментариев нет:

Отправить комментарий