|
CGI und geschützte VerzeichnisseDen Zugriff auf einzelne Verzeichnisse eines Webangebots kann eingeschränktwerden. Der Benutzer muß sich dann mit Benutzerkennung und Passwortanmelden, bevor er an die Daten des Verzeichnisses kommt. Wenn nun in so einemgeschützten Verzeichnis ein Formular liegt, dann ist zwar das Verzeichnisgeschützt, das CGI-Script kann jedoch jederzeit aufgerufen werden, ohne daß User und Passwort angegeben werden müssen. Um CGIs zu schützenkann man zwei Wege einschlagen:- Benutzerauthentisierung ins CGI-Skript aufnehmen. Das geht recht einfach,indem man die Benutzerverwaltung selbst in die Hand nimmt. Das Schema derApache-Basic-Authentisierung kann dabei beibehalten werden. Die Benutzerdateienthät Zeilen mit den durch Doppelpunkt getrennten Paaren von Username undPasswort. Das eingegebene Passwort wird verschlüsselt und mit dem gespeichertenverschlüsselten Passwort verglichen:
$username = substr($username,0,8);$cryptedpass = crypt($password,substr($username,0,2));open DAT, $PASSWORDFILE;while (){chomp; $_ =~ s/\r//;# am Ende weg($uid,$pass) = split(":", $_);# user:passwortif ($uid eq $username)# userid "passt"{fail("Falsches Passwort!") unless ($pass eq $cryptedpass); last;
}
}
close DAT;
- Die andere Möglichkeit ist es, im Skript festzustellen, von wo es
aufgerufen wurde (das verhindert das Einbinden des Scriptes in fremde Seiten).
Die Environment-Variable HTTP_REFERER liefert die Referer-Adresse, also die
Adresse der Seite, von der das Skript aufgerufen wurde. Zuerst wird definiert,
wie die Datei mit dem HTML-Formular heißt und später im Programm
HTTP_REFERER damit verglichen:
my $referer = "https://myhost.tld/upload/upload.html";
...
fail ("Programmaufruf ohne Erlaubnis!"> if ($ENV{'HTTP_REFERER'} ne $referer);
Das folgende Datei-Upload-Programm verwendet die zweite Methode.
Ein Anmeldeskript für eine geschlossene
Benutzergruppe, das Formular dazu und
ein Muster für .htaccess
finden Sie in den Beispielen.
Infos zum Anlegen von geschützten Verzeichnissen finden Sie unter
http://www.netzmafia.de/geheim/index.html.
Zum Login folgende Zugangsdaten eingeben:
- Username: user
- Passwort: geheim
|
|
|