On Fri, 1 Mar 2002, Eugene B. Berdnikov wrote:
> On Thu, Feb 28, 2002 at 07:01:38PM +0300, Khimenko Victor wrote:
> > On Thu, 28 Feb 2002, Eugene B. Berdnikov wrote:
> > > > Вот пример механизма
> > > > - автор spy.cgi идет (по http) на supersecret/.... и смотрит там Realm
> > > > - и выдает, соответственно, такой же.
> > >
> > > Мысль, конечно, интересная, хотя надо суметь заманить уже авторизованного
> > > юзера на свою страничку, да потом подсунуть ему nph-скрипт, выдающий
>401...
> > > Хотя в принципе реализуемо.
> >
> > Да НИЧЕГО не нужно. То есть ВООБЩЕ. Netscape и MS IE, если их однажды
> > /supersecret/ попросил авторизоваться будут выдвать ВСЕ пароли на
>/~someuser/
> > даже если тот ВООБЩЕ не запрашивает авторизацию ! Это я сглупил про realm'ы
>
> Не знаю насчет MSIE, но старые нетскейпы в районе 4.xx совершенно точно
> ТАК себя не вели (я делал некоторые эксперименты с перекрывающимися
> realm'ами).
Ну значит Netscape - крут и могуч. MS IE вообще малопредсказуем: во время
моих экспериментов он умудрялся иногда запрашивать пароль посторно в том
же realm'е и в том же каталоге, а иногда отсылать пароль вообще в другой
Realm и в другой каталог (хорошо хоть не на другой сервер :-) - в общем
тут у них, как обычно "хотели лучше, а получилось как всегда"... Причем
какой-либо логики в его поведении мне обнаружить так и не удалось ...
А чего еще можно ожидать от browser'а, который в своем стремлении "сделать
как лучше" нарушает все стандарты (например HTTP/1.1), а в версии 6.0
доходит до того, что получив "картинку" (то есть MIME-Type в ответе сервера
image/jpeg) с URL'я, заканчивающегося на .exe радостно ее скачивает (потому
как image/jpeg) и не менее радостно этот файл запускает (потому как .exe).
> Netscape запоминает realm по директорной части URI посланного
> запроса, все точно в соответствии со стандартом. Так что для /~someuser/
> нетскейп никакой авторизации просто так не выдаст.
>
MS IE - выдает. Если звезды правильно встанут :-/ От чего зависит - выдаст
или не выдаст мне выяснить так и не удалось...
> > все на самом деле куда хуже (или лучше - смотря с какой стороны смотреть :-)
> > Все просто: если Netscape не будет этого делать, то ему придется на каждую
> > защищенную страничку посылать два запроса (один - без пароли и после
> > получения отлупа - второй уже с паролем), что замедлит процесс просмотра и
> > заставит тупого клиента обратится к продукции конкурента.
>
> Вовсе нет. Пароль выдается для лишь для тех документов, которые попадут
> в дерево /supersecret/..., а не для всего сайта.
>
Так должно быть.
> И когда нетскейпа попросят пароль с тем же realm'ом для другого поддерева,
> он это поддерево запомнит отдельно - так у меня получалось.
У меня тоже так получалось в MS IE. Если он был "в хорошем расположении духа".
В плохом же он мог доходить до того, что выдавал пароли куда попало (хотя
до выдачи их на другой сервер вроде все же не доходило) или переставл их
запоминать вообще и начинал спрашивать отдельно для каждой странички и
каждой картинки...
> И хотя я находил у нетскейпа глюки при выдаче 401 на честно поданный
> пароль, это никак не отменяет вывода, что нетскейп ведет себя правильно.
>
Netscape в этих вопросах вообще старается соотвествовать стандартам, а не
делать "как лучше" и более предсказуем. Что не отменяет того факта, что
MS IE более распространен...
> > > А меня посетила такая мысль: через ptrace(2) во многих юниксах можно
> > > получить все данные, которые передает клиент - для этого достаточно,
> > > чтобы uid, под которым выполняются cgi-ные скипты, совпадал с uid'ами
> > > апачевых дочек.
> > >
> > > Так что это защита от "честных воров" получается? :)
> >
> > Это ДРУГАЯ атака. И от нее тоже можно закрыться (например выключив ptrace
> > вообще). Но:
> > 1. Она сложнее реализуема...
>
> Ну да. Это прямая атака, ее можно произвести там, где даже xterm из cgi-ки
> не запустишь. А заманить юзера на свою страничку еще суметь надо. :)
А пункт 2. мы специально вырезали, чтобы не отвечать ? Заманить
пользователя на свою страничку часто не так сложно, а suexec эту твою
атаку закрывает напрочь...
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =