Hallo „cm641et“,
Ich möchte eine Web-Applikation nur ausgewiesenen Nutzern
zugänglich machen.
Prinzipiell sehe ich 2 Moeglichkeiten einen Passwortschutz
fuer Webseiten zu realisieren:
a) dein (CGI-)Skript prueft besagte UserID und Passwort
und liest bei Erfolg eine Datei mit HTML-Code, die
nicht im oeffentlich zugaenglichen HTML-Verzeichnis
des Webservers liegt ein und gibt diese an den Anwender
zurueck.
b) du verwendest direkt den Loginmechanismus deines Webservers
und packst die Dateien in ein HTML-Verzeichnis, dass Du als
passwortgeschuetzt definierst.
Eine weitere Frage zu a):
Mit „liest“ meinst Du ein *htm-File, welches in dem
geschützten Bereich lagert und dann in ein *.htm-File
geschrieben wird, dass für die Appl.User lesbar ist?
Also mal ein konkretes Beispiel:
Der User bekommt ein Loginbildschirm, als normales
HTML-File z.B. http://myhost.com/login.htm
mit einem Formular, dass die Logindaten
abfraegt. Bei Klick auf den OK-Button, sendet diese
Seite die Fomulardaten an ein Perl-Skript, dessen URL
im ACTION-Attribut des Form-Tag angegeben ist.
Es ueberprueft die Daten und gibt bei Erfolg die
„geschuetzte“ Seite zurueck:
if ($passwort eq "GEHEIM"){
$dateiname="c:/schablonen/geheim.htm";
{
local $/; # lokaler Schlürfmodus
local \*DATEI; #lokales Dateihandle
open(DATEI, "; #Datei einlesen
close(DATEI);
}
print "Content-type: text/html\n\n";
print $text;
}
Die Datei geheim.htm liegt physisch in einem
Verzeichnis das nicht ueber irgendwelche URLs
anzeigbar ist (im Apache-Vokabular: ausserhalb
document root), sonst macht die Aktion ja wenig
Sinn.
Es sei noch angemerkt, dass diese Login-Ueberpruefung
per Skript in jedem Fall den clientseitigen Cookies
vorzuziehen sind, da es mit diesen zu viele
Fehlermoeglichkeiten gibt (Browser unterstuetzt
das nicht oder User hat Cookies deaktiviert).
Hope that helps …
-Andreas.