Нужно было написать скрипт авторизации пользователя с защитой от переборки паролей.
У меня есть пара мыслей.
Принцип скрипта такой:
1) В самом начале, скрипт, сразу же проверяет, не заблокирован ли, ip с которого подключается пользователь. Если IP не заблокирован - выводится форма. А если заблокирован - выводится соответствующее сообщение с остановкой работы скрипта (exit;).
2) После ввода пароля таким же образом проверяется пользователь, под которым пытаются войти в систему.
3) Если пользователь не заблокирован, проверяется пароль и логин на соответствие существующим.
4) Если авторизация прошла успешно, что то происходит, в противном случае, выдается сообщение об обратном.
Теперь самое интересное. Предположим, злоумышленник пытается подобрать пароль к одному из пользователей. Скрипт после 5 попыток блокирует и пользователя, под которым пытается подключиться хакер и его ip адрес. Что бы хакер сменив IP не пытался дальше подбирать пароль к этому пользователю.
А если хакер с помощью проксей меняет свой IP. В этом случае, после 5 попыток заблокируется пользователь под которым он пытается войти в систему с разных IP.
Рабочий скрипт я уже написал. Хотелось бы услышать Ваши мысли по поводу подобной штуки.
Спустя 8 минут, 39 секунд (8.05.2009 - 15:58) jetistyum написал(а):
1. Какой грандиозный проект ты пишешь, что предполагаешь такую серьезную систему безопасности.
2. КАПТЧА портит всю автоматизацию... берешь делаешь сложную каптчу.. и вперед.. ввел два раза неправильно - показываешь каптчу для всех попыток войти в этот аккаунт с разных ip адресов.
3. Ну допустим все это оправдано, в случае многократного неправильного перебора паролей ты можешь вообще блокировать учетную запись пользователя, и высылать ему на e-mail ссылку для разблокирования, сообщая об этом.. например после 200 неудачных попыток войти в аккаунт можно блокировать авторизацию, и разблокировать ее только по ссылке с ключом.... ссылку высылаешь на email указанный при регистрации... и все.. пока не нажмешь, даже правильный пароль не подойдет...
4. Повышать требование к длинне и сложности пароля - например пароль должен быть не менее 6 символов длинны, и содержать в себе символы верхнего и нижнего регистра. Авторизацию проводить только по HTTPS .. иначе вся секьюрность накрывается ...
2. КАПТЧА портит всю автоматизацию... берешь делаешь сложную каптчу.. и вперед.. ввел два раза неправильно - показываешь каптчу для всех попыток войти в этот аккаунт с разных ip адресов.
3. Ну допустим все это оправдано, в случае многократного неправильного перебора паролей ты можешь вообще блокировать учетную запись пользователя, и высылать ему на e-mail ссылку для разблокирования, сообщая об этом.. например после 200 неудачных попыток войти в аккаунт можно блокировать авторизацию, и разблокировать ее только по ссылке с ключом.... ссылку высылаешь на email указанный при регистрации... и все.. пока не нажмешь, даже правильный пароль не подойдет...
4. Повышать требование к длинне и сложности пароля - например пароль должен быть не менее 6 символов длинны, и содержать в себе символы верхнего и нижнего регистра. Авторизацию проводить только по HTTPS .. иначе вся секьюрность накрывается ...
Спустя 2 минуты, 20 секунд (8.05.2009 - 16:00) FatCat написал(а):
На этом форуме уже реализовано независимо от проблемы переборки паролей: защита от перегрузки.
Принципы:
1. Поисковые боты по юзерагенту выводятся из-под удара.
2. Сессия по кукам, если нет куков, то по айпишнику.
3. Если в куках авторизованный пользователь - выводится из-под удара.
4. Меряется интервал времени между запросами страниц. Если меньше заданного: счетчик нагрузки в сессии увеличивается на единичку, вместо запрошенной странички отдается предупреждение о недопустимости двойных кликов.
5. По набору критической величины счетчика нагрузки, айпишник блокируется через .htaccess
6. Авторазблокировка через заданный интервал времени, здесь через 240 часов.
Принципы:
1. Поисковые боты по юзерагенту выводятся из-под удара.
2. Сессия по кукам, если нет куков, то по айпишнику.
3. Если в куках авторизованный пользователь - выводится из-под удара.
4. Меряется интервал времени между запросами страниц. Если меньше заданного: счетчик нагрузки в сессии увеличивается на единичку, вместо запрошенной странички отдается предупреждение о недопустимости двойных кликов.
5. По набору критической величины счетчика нагрузки, айпишник блокируется через .htaccess
6. Авторазблокировка через заданный интервал времени, здесь через 240 часов.
Спустя 4 минуты, 21 секунда (8.05.2009 - 16:04) ApuktaChehov написал(а):
Это не публичный проект. Это корпоративный замысел. Необходима приличная степень защищенности.
Блокировка через .htaccess! Гениально, об этом то я и не подумал. Я делал ее с помощью php.
Благодарю!
Блокировка через .htaccess! Гениально, об этом то я и не подумал. Я делал ее с помощью php.
Благодарю!
Спустя 2 дня, 16 часов, 55 минут, 6 секунд (11.05.2009 - 08:59) glock18 написал(а):
Достаточно распространенный и, в общем, действенный способ защиты. Блокировка ip адреса имеет один минус.
к примеру, есть такие уязвимости:
1. получение личных данных пользователя (вышеуказанный пример).
2. блокировка доступа пользователей к ресурсу.
Блокировка ip адреса как раз раскрывает возможность для второй уязвимости.
Я бы попытался найти что-нибудь менее радикальное и не менее действенное. Но пока затрудняюсь что именно.
к примеру, есть такие уязвимости:
1. получение личных данных пользователя (вышеуказанный пример).
2. блокировка доступа пользователей к ресурсу.
Блокировка ip адреса как раз раскрывает возможность для второй уязвимости.
Я бы попытался найти что-нибудь менее радикальное и не менее действенное. Но пока затрудняюсь что именно.
_____________