Edgar Ehritt: Passwortschutz über .htaccess

Beitrag lesen

Hallo,

Doch: Schliessen der Browserinstanz.

damit alleine ist es nicht zwingend getan. Ein Beispiel hierfür ist der Firefox, dem das Schließen einer _Instanz_ nicht reicht. Es müßten alle Firefoxprozesse beendet werden.

(Manche Scripte versuchen, einen "Logout" ueber erneutes senden eines 401-Headers zu realisieren, aber davon wuerde ich abraten.)

Zum Beispiel folgendes keine Script macht dies:

  
<?php  
if(!array_key_exists('PHP_AUTH_USER',$_SERVER) || $_SERVER['QUERY_STRING']=='logout'){  
 header('WWW-Authenticate: Basic realm="My Realm"');  
 header($_SERVER['SERVER_PROTOCOL'].' 401 Unauthorized');  
 echo "Ausgeloggt\n";  
 exit;  
}  
# Überprüfungsroutine für Users und Passwd aus $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW']  
?>
~~~~~~html
  
<?xml version="1.0" encoding="ISO-8859-1" ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<title>Text</title>  
</head>  
<body>  
<p><a href="?logout">Ausloggen</a></p>  
</body>  
</html>

Es arbeitet soweit auch, wenn alles über dieses eine Script gesteuert wird. Möglichkeiten der Realisierung hierfür sind das Verarbeiten gängniger Parametern (Query-Strings, Path-Info, etc.). Somit kann ein Ausloggen über die HTTP-Authentifizierung, wie sie in einer Serverkonfiguration (z. B. .htaccess für den Apachen) bestimmt werden kann, nur für sich allein nicht realisiert werden.

Des weiteren ist anzumerken, daß obiges Script nur für den Apachen geschrieben ist, unter dem PHP als Server-Modul läuft.

Gruß aus Berlin!
eddi