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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     24 Jul 2002  20:24:37
 To : Konstantin Stupnik
 Subject : Re: https
 -------------------------------------------------------------------------------- 
 
 Konstantin Stupnik wrote:
 
 > Хм. А как делается http authorization выдачей 401 из скрипта?
 > Особенно в случае не mod_perl.
 > К тому же, как показывает практика, nph не так то часто включют.
 
 --------------------- 401.cgi ---------------------
 #!/usr/bin/perl -w
 use strict;
 
 print "Status: 401\r\n",
        "WWW-Authenticate: Basic realm=\"test\"\r\n",
        "Content-type: text/plain\r\n\r\n",
        "Authorization required!\r\n";
 ---------------------- eof ------------------------
 
 Андрей
 
 P.S. Данный скрипт имеет исключительно демонстрационную
 цель и никоим образом не является призывом писать CGI
 скрипты без использования библиотеки CGI. В реальной
 работе используйте, если не имеете веских оснований
 делать по-другому:
 
 #!/usr/bin/perl -w
 use strict;
 use CGI;
 
 my $q = CGI->new;
 print $q->header(-status => 401,
                   -www_authenticate => 'Basic realm="test"',
                   -type => 'text/html'),
        $q->start_html('Authorization required'),
        $q->h2('Authorization required'),
        $q->end_html;
 
 P.P.S. Выдать ответ 401 еще не все. Hадо как-то получить
 от браузера имя и пароль пользователя. Тут все зависит от
 веб-сервера, но апач, к примеру, эти поля вам не передаст.
 Выручить может mod_rewrite.
 
 ------------------ .htaccess -------------------
 <Files "401.cgi">
 RewriteEngine On
 RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
 </Files>
 --------------------- eof ----------------------
 
 обеспечит передачу поля Authorization в переменной окружения
 REMOTE_USER. Можете выбрать другую, но имейте в виду, что
 CGI скрипты могут запускаться через suexec который содержит
 жестко заданный список переменных окружения разрешенных к
 передаче в скрипт. Содержимое этой переменной (например
 'Basic bmFtZTpwYXNz') придется разобрать самостоятельно.
 В общем ничего сложного. Метод авторизации, пробел, и строчка
 имя:пароль завернутая при помощи base64.
 
 P.P.P.S. Любителям аномального секса посвящается. Все остальные,
 надеюсь, найдут достаточными стандартные средства авторизации.
 
 P.P.P.P.S. Больше ни слова о CGI пока (co-)?модератор башку не
 отвинтил!
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 https   1Eugene Lototsky   23 Jul 2002 16:25:34 
 Re: https   Victor Wagner   23 Jul 2002 17:02:35 
 Re: https   Konstantin Stupnik   24 Jul 2002 12:11:23 
 Re: https   Victor Wagner   24 Jul 2002 13:04:50 
 Re: https   Konstantin Stupnik   24 Jul 2002 18:49:27 
 Re: https   Victor Wagner   24 Jul 2002 19:24:36 
 Re: https   Andrey Sapozhnikov   24 Jul 2002 20:24:37 
Архивное /ru.perl/52843ba3e7bc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional