In questo articolo proponiamo un semplicissimo esempio di autenticazione HTTP, detta anche WWW-Authenticate, che mostra come utilizzare gli headers per creare un sistema di login per gli utenti. La procedura prevede che il nome e la password dell'utente autorizzato al login siano inserite direttamente nel codice dello script, naturalmente nulla vieta di andarle a prelevare da una base di dati.
L'autenticazione tramite protocollo HTTP è considerata abbastanza sicura per quanto riguarda la protezione di aree riservate non destinate al traffico degli utenti, per quanto riguarda invece altri casi come per esempio l'accesso a forum di discussione si consiglia vivamente di utilizzare le sessioni..
<?php
$autenticato = false;
if (isset($_SERVER['PHP_AUTH_USER']) &&
isset($_SERVER['PHP_AUTH_PW']))
{
$user = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
if ($user == 'marlon' && $password == 'brando'){
$autenticato = true;
}
}
if (!$autenticato){
header('WWW-Authenticate: Basic realm="Pagina di accesso"');
header('HTTP/1.0 401 Unauthorized');
echo "Autenticazione fallita.\n";
}
else {
echo 'Utente autenticato.';
}
?>
Lo script in pratica non fà altro che controllare la corrispondenza dei valori delle variabili per l'autenticazione ($_SERVER['PHP_AUTH_USER'] e $_SERVER['PHP_AUTH_PW'] ) con i dati di accesso stabiliti nel listato. A seconda dell'esito dell'operazione verranno inviati tramite protocollo headers differenti.