phpbar.de logo

Mailinglisten-Archive

[php] Allgemein Passwort

[php] Allgemein Passwort

Tino Scharnbeck Tino.Scharnbeck_(at)_kgw.tu-berlin.de
Sun, 5 Mar 2000 14:43:40 +0100


Ein wenig Aufwand solltest du schon betreiben. Am Besten eine eigene
Minidatenbank (Tabelle) anlegen, die per Script -INCLUDE("php-Script")-
abgefragt wird.
Die PW-Tabelle konnte so aussehen:
user1##passwort1\n
user2##passwort2\n
('\n' sind dabei die Zeilenumbrueche und '##' die Separatoren.)
Das Ganze moeglichst verschluesselt (natuerlich nur Name und Passwort)
und in einem entfernten Verzeichnis mit NICHT SELBSTERKLAERENDEM NAMEN 
gespeichert, also in
/home/infos/manual/tue_ganz_unschuldig/wirklich_nichts_interessantes/trallitralla.txt
Die PW-Abfrage sieht dann bspw so aus:

<?PHP
  if(!isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW)) 
{
    Header("WWW-Authenticate: Basic realm=\"My Realm\"");
    Header("HTTP/1.0 401 Unauthorized");
    echo "Fehler! Username und/oder Passwort wurden nicht uebergeben";
    exit;
} 

$file=file( "PW-Tabelle.txt" ); 	/* in unserem top secret-Fall natuerlich trallitralla.txt */
$count=count($file);		
for ($i=0;$i<$count;$i++)
	{
	$line=$file[$i];
	$user_pw=explode("##",$line);
	$user=$user_pw[0];
	$passwort=$user_pw[1];
	if ($user==$PHP_AUTH_USER && $passwort==$PHP_AUTH_PW)
		{
		$ok=1;
		}
	}
if ($ok!=1)
	{
	include("Zugriffsverweigerung.html"); 
	/* Datei, die aufgerufen wird, wenn User oder PW nicht korrekt */
	exit;
	}
else
	{
	/* 	hier steht dann alles, was passieren soll, wenn user + pw korrekt,
		bevor es weiter geht - z.B. logfile anlegen
	*/
	}
?>

Das Ganze z.B. als pwcheck.php3 speichern. Dann muss in der ersten Zeile jeder
zu schutzenden Seite nur stehen:
include("pwcheck.php3");
Achtung! Die PW-Verifizierung erfolgt nur einmal! D.h. 
a) im Fehlerfall muss der komplette Browser geschlossen und neu gestartet werden. 
b) nach Beenden der Session sollte der Anwender seinen Browser schliessen, da
sonst Unbefugte von seinem Rechner aus auf den zu schutzenden Bereich Zugang
erhalt - Darauf sollte gerade bei Zugriff von offentlichen Rechnern (Uni,Arbeitsplatz)
hingewiesen werden.

Tino


php::bar PHP Wiki   -   Listenarchive