Jesteś tutaj: Strona Główna > Podstawy PHP > Uwierzytelnianie HTTP

Uwierzytelnianie HTTP

 
Oto prosty system uwierzytelniania HTTP:
<?php

If ($_SERVER['PHP_AUTH_USER'] != 'user' || $_SERVER['PHP_AUTH_PW'] != 'haslo')
	{
	header("WWW-Authenticate: Basic realm=Logowanie do systemu");
	header("HTTP/1.0 401 Unauthorized");
	echo 'błąd logowania';
	exit();
	}
// Wszystko poniżej jest chronione
echo 'zalogowany';
Kod ten wywoła nam okienko logowania - uwierzytelniania. Gdy podamy poprawny login i hasło będziemy zalogowani. Będziemy mieć "dostęp" do reszty danego pliku. System dobry jako logowanie np. do panelu admina prostego skryptu itp. Można też go rozciągnąć jako logowanie użytkowników. Powiedzmy że mamy tablicę asocjacyjną :
<?php

$tab['jan'] = 'haslo';
$tab['jurek'] = 'haslo2';
$tab['asia'] = 'haslo3';

If ($tab[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW'] || !isset($_SERVER['PHP_AUTH_USER']))
	{
	header("WWW-Authenticate: Basic realm=Logowanie do systemu");
	header("HTTP/1.0 401 Unauthorized");
	echo 'błąd logowania';
	exit();
	}
echo 'zalogowany';
Dla bezpieczeństwa zazwyczaj hasła są kodowane w md5. Jeżeli tablica ma zakodowane hasła to skrypt wyglądałby tak:
<?php

$tab[jan] = '207023ccb44feb4d7dadca005ce29a64';
$tab[jurek] = 'ed71c5d55af657bc2413020e5580d4dd';
$tab[asia] = 'daa9bda719032ae88abadb9cda4aa846';

If ($tab[$_SERVER['PHP_AUTH_USER']] != md5($_SERVER['PHP_AUTH_PW']) || !isset($_SERVER['PHP_AUTH_USER']))
	{
	header("WWW-Authenticate: Basic realm=Logowanie do systemu");
	header("HTTP/1.0 401 Unauthorized");
	echo 'błąd logowania';
	exit();
	}
echo 'zalogowany';
Stan zalogowania trwa do zamknięcia okna przeglądarki.
Biblioteka Riklaunima. Hosting NRC-FOSS na AU-KBC. Serwis oparty o Django/Python.