Tot ce trebuie să știți despre autorizare de bază apache

Cum funcționează

În primul rând, am pus pe un server de fișiere .htaccess. În ea, indicăm care zona (sau anumite fișiere) ar dori să înregistreze recuperare. S-ar putea arata ceva de genul:

În plus, fișierul parola pot fi prezente pe site. El are o structură simplă:

autentificare: parola criptate
autentificare: parola criptate
.

Calea către fișierul specificat în htaccess.

Vorbind la server sub lupă

WWW-autentificaþi: tărâm de bază = „Tărâmul meu“
Stare: 401 neautorizat
HTTP-Stare: 401 neautorizat

Aici trebuie spus că zona (domeniu) - un parametru important. Dacă doriți să ghideze utilizatorul prin mai multe zone protejate prin parolă, nu toate dintre care utilizatorul ar trebui să aibă acces, doar numele zonei va identifica utilizatorul conectat la site-ul sau nu încă.

2. După primirea acestor antete, browser-ul se bazează pe solicitarea de conectare sub formă de ecran și parola. În cazul în care utilizatorul face clic pe „Cancel“, browser-ul oferă toate datele care au fost în spatele acestor titluri.

4. În cazul în care utilizatorul introduce numele de utilizator și parola corecte, și răspunsul serverului la pagina care solicită, browser-ul stochează numele de utilizator și parola introduse pentru această zonă.

(.) 5. Apoi, în cazul în care browser-ul trimite la serverul orice cerere, el se atașează la un cuplu de - nume de utilizator și parolă. Se pare ca acest lucru:

Autorizare: base64 de bază (conectare: pass)

#Perl
print "WWW-autentificaþi: tărâm de bază =" Tărâmul meu "\ n";
Print "Stare: 401 neautorizat \ n";
print "HTTP-Stare: 401 neautorizat \ n";
Print "Content-type: text / html \ n \ nAnulați";

#PHP
header ( "WWW-autentificaþi: tărâm de bază =" Tărâmul meu "");
antet ( "Statut: 401 neautorizat");
header ( "HTTP Status: 401 neautorizat");
Print "Ați dat clic pe Cancel";

Tot ce trebuie să știți despre autorizare de bază apache

Există o dificultate: Apache nu trece în variabile de mediu introduse de utilizator și parola. Aceasta este, de a avea acces la ele Perl este problematică. Dar este posibil. Cea mai simplă soluție - de a utiliza mod_rewrite. Append linie în htaccess:

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

Ei vor adăuga o nouă variabilă de mediu. Din Perl ea va fi văzută ca $ ENV. Acesta va cuprinde o pereche de conectare și parola codificată în base64. Desigur, necesitatea de a se joace un pic, în scopul de a re-coda-le înapoi, dar e ceva. Mai ales pentru că există în jur de joc, de fapt, nu de mult:

s / \ s bază + // i;
mea ($ REMOTE_USER, $ REMOTE_PASSWD) = divizare (/: /, decode_base64 ($ ENV));

Sesiunea de sprijin în Perl și PHP

Faptul că astfel de lucruri

Link-uri conexe