Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     25 Sep 2002  15:18:26
 To : "Michael A. Ivanovsky"
 Subject : Re: Аутентификация средствами HTTP
 -------------------------------------------------------------------------------- 
 
 Michael A. Ivanovsky <iv@amrita.penza.com.ru> wrote:
 
 >> MAI> хттп-заголовка
 >> MAI> WWW-Authenticate: Basic realm="MuRealm"
 >> MAI> HTTP/1.0 401 Unauthorized
 >>
 >> зачтения документации отослать к "Writing Apache modules with Perl and C".
 MAI> Спасибо. В документации я не обнаружил ни одного внятного примера, тем
 MAI> более связанного с 401-й ошибкой.
 
 Оно там есть.
 
 MAI> Я предполагал, что алгоритм такой.
 MAI> - клиент лезет на скрипт
 MAI> - действие, которое он хочет сделать, требует авторизации
 MAI> - генерится ошибка 401, которая вынуждает клиент показать окно ввода пароля
 MAI> - если пользователь нажал "отмена" он увидит текст, который идёт за хидером
 MAI> с 401-й ошибкой
 MAI> - если логин/пароль введён - передаётся в заголовке ответа клиента
 MAI> - логин/пароль проверяется по данным СУБД мускл.
 
 Такая схема прекрасно работала в Communiware на протяжении 3-х лет,
 пока не пришел в компанию Артем Чуприна и не переделал все нафиг на
 куках (стало работать еще  прекраснее).
 
 Hо! Тонкость заключается в том, что Communiware это не сgi-скрипт, а
 набор mod_perl-овых модулей. Поэтому у меня была возможность залезть
 в заголовок Authorization и достать аттуда пароль, дабы проверить его
 самому. CGI-скрипту Apache пароля не отдаст.
 
 Поэтому авторизацию надо проводить либо средствами апача, либо
 посредством собственного модуля (например перлового, черед mod_perl)
 встроенного в апач. Потому что апач и стандартные авторизационные модули
 типа mod_auth_mysql, не будут проверять авторизацию для URL, про которую
 в конфиге апача не написано AuthType basic.
 
 Есть такой метод обхода этой проблемы (и я им активно пользовался еще
 году в 1997):
 
 увидев, что необходима авторизация, скрипт выдает РЕДИРЕКТ на
 
 $cgi->url(-query_string=>0) . "/secure"
 
 В конфиге апача написано
 
 <Location /cgi-bin/myscript/secure>
 AuthType basic
 и все что касается того по чему проверять пароли
 
 В начале работы скрипт смотрит на path_info, и если там /secure,
 то убеждается в наличии $ENV{'REMOTE_USER'}.
 
 После чего уже сам скрипт может решать, заслуживает ли данный юзер
 200 или 403.
 -- 
 http://www.communiware.ru                     http://www.ice.ru/~vitus
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Аутентификация средствами HTTP   Artem Chuprina   25 Sep 2002 13:34:14 
 Re: Аутентификация средствами HTTP   Michael A. Ivanovsky   25 Sep 2002 15:02:12 
 Re: Аутентификация средствами HTTP   Artem Chuprina   25 Sep 2002 15:14:24 
 Re: Аутентификация средствами HTTP   Victor Wagner   25 Sep 2002 15:18:26 
 Hа: Аутентификация средствами HTTP   Alexander V. Gaiduk   25 Sep 2002 16:38:07 
 Re: Hа: Аутентификация средствами HTTP   Victor Wagner   26 Sep 2002 10:06:42 
 Re: Hа: Аутентификация средствами HTTP   Nikolay A. Panov   28 Sep 2002 09:43:08 
Архивное /ru.cgi.perl/1517845ea93cc.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional