В продолжении темы защиты WEB

На нашем ресурсе уже было несколько тем по защите WEB ресурса от перебора паролей, предлагаем вам ещё 1
простой и довольно эффективный алгоритм защиты от перебора:


1) Все-таки заставлять пользователей не использовать совсем уж легкие пароли,

2) Ограничить кол-во попыток логирования для пользователя и ip-адреса(отдельно для каждого пользователя и отдельно с каждого ip-адреса) определенным числом за N минут, например не более 5 неудачных попыток входа за 15 минут, после требовать ввода сложной капчи и давать ещё 5 попыток, если пользователь ввел её успешно (ввод любой капчи это ещё не гарантия что это не бот из-за трудолюбивых китайцев с их сервисами ручных распознаваний капч, но распознавание миллионов капч все-таки весьма дорогое занятие, чтобы оно имело смысл),

3) Ограничить общее время неудачных попыток за все время, то есть если пользователь даже в течении месяца ввел 20 раз пароль неправильно и не ввел ни разу правильный пароль, то при каждом следующем вводе, требовать капчу.

Это позволит ограничить как ботов, перебирающих пароли сразу, так и тех кто перебирает понемногу. Правда, проблема все равно остается если пользователь заходить часто, а бот перебирает достаточно медленно, тогда есть шанс что пользователь будет успевать вводить правильный пароль чаще чем бот израсходует лимит неправильных. Тут есть несколько вариантов:
1) Анализировать соответствие правильных и неправильных пользователей, если ипшники и юзер-агенты и включена ли js или нет, всех кто входит под правильным паролем и под неправильным никогда не совпадает, включаем для пользователя капчу при каждом входе,

2) другой вариант, при входе правильного пользователя выводить предупреждение с каких ip адресов, когда и сколько раз были попытки входить в систему и показывать кнопку «это был не я»

3) придумать что-то свое…

P.S. Если есть желание помучатся, можно порыть в сторону анализа таких вещей как включен ли у пользователя javascript (например, отдавая ему хитрую, сгенеренную каждый раз заново, функцию javascript, устанавливающую хитрые ключи в скрытые поля форм), правильные ли user agent’ы и работа с куками, нет ли следов работы с прокси или ипишников совсем отличных от предыдущих ипишников регистрации и успешных входов и т.п. Соответственно, для подозрительных пользователей, показывать капчу или раньше или вообще сразу при вводе пароля.

P.P.S. А да, для полноты защиты, можно даже ограничить общее кол-во неправильных вводов пароля даже с капчей и потом требовать или восстановления пароля или ввода какой-то дополнительной информации. Например, если пользователь ввел даже с капчей 50 раз пароль неправильно, предложить ему восстановить пароль по email или ввести дату своего рождения/email/т.п. для дальнейших попыток ввода пароля.

Share with:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *