Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Single Sign On with Nginx
Mikhail Fursov wrote:
2010/2/26 Andrew Kopeyko <kaa@xxxxxxxx <mailto:kaa@xxxxxxxx>>
Mikhail Fursov wrote:
2) Должна быть указан URL страницы на которую переходить при
ошибке аутентификации. Тут важно передать странице с ошибкой
полную информацию об аутентификации - логин, пароль, тип ошибки
(если возможно). В Apache этого нет, поэтому когда происходит
ошибка аутентификации и пользователя требуют заново ввести
пароль совсем непонятно по какой причине: его аккаунт
заблокирован, задан неправильный пароль etc. Это очень неудобно.
Зато правильно с точки зрения безопасности - при отказе в доступе не
происходит раскрытия информации. Удивительно, что вы не знаете таких
базовых вещей.
А ваш "дружественный" интерфейс будет подыгрывать взломщику,
позволяя ему последовательно подобрать логин, а затем пароль.
Вы ведь не ограничиваете кол-во неудачных попыток авторизации?
Я не гуру в разработке веб-серверов но не вижу тут никакого раскрытия
информации. На error-document шли бы те же данные, что ввел сам
пользователь. Что из них ожно раскрыть?
Если вы не будете разжёвывать пользователю что именно он ввёл
неправильно, а просто скажете "не попал" - тогда раскрытия не будет.
А вот если вы будете ему сообщать (условно) "неправильный логин", "логин
заблокирован", "логин верный, неверен пароль" - это уже раскрытие
информации. Ведь до момента успешной авторизации вы знать не знаете кто
сидит на другой стороне - валидный пользователь, или злоумышленник.
Собственно, для того вы аутентификацию и делаете - дабы отличить одного
от другого.
Посмотрите вокруг - в подавляюшем большинстве информационных систем при
неудачной аутентификации говорится что-то типа "доступ запрещён" не
уточняя по какой именно причине. Windows в этом месте - сделан
исключительно правильно.
Но вы, если я правильно вас понял, хотите облегчить пользователю жизнь,
и подсказывать бедолаге в чём именно он ошибся, в логине или в пароле.
Т.е. в дилемме "удобство vs. безопасность" вы выбираете "удобство", тем
самым снижая безопасность вашей системы.
Безопасность будет снижаться, потому что злоумышленнику не нужно будет
подбирать всю пару логин-пароль - он сможет, пользуясь подсказками
вашего дружественного интерфейса, отдельно подобрать незаблокированный
логин (передавая, к примеру "" в качестве пароля), и затем подобрать
верный пароль к этому логину. Поскольку длина отдельно логина
существенно меньше длины пары логин-пароль, времени на такой подбор
потребуется существенно меньше.
Решать, разумеется, вам - но настоятельно советую отказаться от вашей
затеи "с удобствами", и наружу выдавать только сообщение "доступ
запрещён", без подробностей.
--
Best regards,
Andrew A. Kopeyko <kaa@xxxxxxxx>
http://www.zvuki.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|