Всичко, което трябва да знаете за Apache основно разрешение

Как работи това

На първо място, ние поставяме на сървъра .htaccess файл. В него ние се посочи коя зона (или определени файлове) би искал да рекорд възстановяване. Тя може да изглежда по следния начин:

В допълнение, файла с паролите може да присъства на сайта. Той има проста структура:

логин: парола криптирана
логин: парола криптирана
.

Пътят до файла е посочено в Htaccess.

Разговорите към сървъра под лупа

WWW удостоверяване: Основна сфера = "Моята Realm"
Статус: 401 Unauthorized
HTTP-статус: 401 Unauthorized

Тук трябва да се каже, че тази зона (област) - важен параметър. Ако искате да насочва потребителя в множество области, защитени с парола, не всички от които потребителят трябва да има достъп, само името на зона ще идентифицира потребителя влезете в сайта или да не още.

2. След получаването на тези заглавия, браузърът се основава на Искане за вход в форма екран и парола. Ако потребителят кликне върху "Отказ", браузърът предоставя всички данни, които са били зад тези заглавия.

4. Ако потребителят въведе правилно името и паролата, както и отговора на сървъра на молещата страница, браузърът съхранява потребителското име и паролата, въведени за тази зона.

(.) 5. След това, ако браузърът изпраща до сървъра всяко искане, той се свързва с това на няколко - с потребителско име и парола. Тя изглежда така:

Разрешение: Основна base64 (влизане: пас)

#Perl
печат "WWW-Authenticate: Основна сфера =" Моята Realm "\ Н";
печат "Status: 401 Unauthorized \ Н";
печат "HTTP-статус: 401 Unauthorized \ Н";
печат "Content-Type: текст / HTML \ н \ nCancel";

#PHP
глава ( "WWW удостоверяване: Основна област =" царството ми "");
глава ( "Състояние: 401 Неупълномощен");
глава ( "HTTP статус: 401 Неупълномощен");
печат "щракнете върху Отказ";

Всичко, което трябва да знаете за Apache основно разрешение

Има една трудност: Apache не преминава през променливи въведени потребителско име и парола. Това е, достъп до тях от Perl е проблематично. Но това е възможно. Най-простото решение - да използвате mod_rewrite. Добавяне на ред в Htaccess файл:

RewriteEngine на
RewriteCond% ^ (. *)
RewriteRule ^ - [E = HTTP_CGI_AUTHORIZATION:% 1] (*).

Те ще добави нова променлива среда. От Perl тя ще се разглежда като $ ENV. Това ще включва чифт потребителско име и парола, кодиран в base64. Разбира се, необходимостта да калайджия малко, за да ги възстанови кодира обратно, но това е нещо. Особено, защото има каша наоколо, всъщност, не е много:

S / основни \ S + // I;
ми ($ REMOTE_USER, $ REMOTE_PASSWD) = сплит (/: /, decode_base64 ($ ENV));

Сесията за поддръжка на Perl и PHP

Че такива неща

Сродни връзки