Я со многим из того что вы говорите согласен. Но тут нужно понять одно: надо дать возможноть разработчику самому принимать решения и отвечать за них, а не ограничивать его только чем-то одним. Варианты использования инфы неисповедимы.<br>
<br><div class="gmail_quote">2010/2/26 Andrew Kopeyko <span dir="ltr"><<a href="mailto:kaa@zvuki.ru">kaa@zvuki.ru</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Mikhail Fursov wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2010/2/26 Andrew Kopeyko <<a href="mailto:kaa@zvuki.ru" target="_blank">kaa@zvuki.ru</a> <mailto:<a href="mailto:kaa@zvuki.ru" target="_blank">kaa@zvuki.ru</a>>><div class="im"><br>
<br>
Mikhail Fursov wrote:<br>
<br>
<br>
2) Должна быть указан URL страницы на которую переходить при<br>
ошибке аутентификации. Тут важно передать странице с ошибкой<br>
полную информацию об аутентификации - логин, пароль, тип ошибки<br>
(если возможно). В Apache этого нет, поэтому когда происходит<br>
ошибка аутентификации и пользователя требуют заново ввести<br>
пароль совсем непонятно по какой причине: его аккаунт<br>
заблокирован, задан неправильный пароль etc. Это очень неудобно.<br>
<br>
<br>
Зато правильно с точки зрения безопасности - при отказе в доступе не<br>
происходит раскрытия информации. Удивительно, что вы не знаете таких<br>
базовых вещей.<br>
<br>
А ваш "дружественный" интерфейс будет подыгрывать взломщику,<br>
позволяя ему последовательно подобрать логин, а затем пароль.<br>
<br>
Вы ведь не ограничиваете кол-во неудачных попыток авторизации?<br>
<br>
<br>
Я не гуру в разработке веб-серверов но не вижу тут никакого раскрытия информации. На error-document шли бы те же данные, что ввел сам пользователь. Что из них ожно раскрыть?<br>
</div></blockquote>
<br>
Если вы не будете разжёвывать пользователю что именно он ввёл неправильно, а просто скажете "не попал" - тогда раскрытия не будет.<br>
<br>
А вот если вы будете ему сообщать (условно) "неправильный логин", "логин заблокирован", "логин верный, неверен пароль" - это уже раскрытие информации. Ведь до момента успешной авторизации вы знать не знаете кто сидит на другой стороне - валидный пользователь, или злоумышленник. Собственно, для того вы аутентификацию и делаете - дабы отличить одного от другого.<br>
<br>
Посмотрите вокруг - в подавляюшем большинстве информационных систем при неудачной аутентификации говорится что-то типа "доступ запрещён" не уточняя по какой именно причине. Windows в этом месте - сделан исключительно правильно.<br>
<br>
Но вы, если я правильно вас понял, хотите облегчить пользователю жизнь, и подсказывать бедолаге в чём именно он ошибся, в логине или в пароле.<br>
<br>
Т.е. в дилемме "удобство vs. безопасность" вы выбираете "удобство", тем самым снижая безопасность вашей системы.<br>
<br>
Безопасность будет снижаться, потому что злоумышленнику не нужно будет подбирать всю пару логин-пароль - он сможет, пользуясь подсказками вашего дружественного интерфейса, отдельно подобрать незаблокированный логин (передавая, к примеру "" в качестве пароля), и затем подобрать верный пароль к этому логину. Поскольку длина отдельно логина существенно меньше длины пары логин-пароль, времени на такой подбор потребуется существенно меньше.<br>
<br>
<br>
Решать, разумеется, вам - но настоятельно советую отказаться от вашей затеи "с удобствами", и наружу выдавать только сообщение "доступ запрещён", без подробностей.<div><div></div><div class="h5"><br>
<br>
<br>
-- <br>
Best regards,<br>
Andrew A. Kopeyko <<a href="mailto:kaa@zvuki.ru" target="_blank">kaa@zvuki.ru</a>><br>
<a href="http://www.zvuki.ru/" target="_blank">http://www.zvuki.ru/</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Mikhail Fursov<br>