|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/52843ba3e7bc.html, оценка из 5, голосов 10
|