BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- [PHP] aus Verzeichnisschutz wieder ausloggen (http://www.black-board.net/thread.php?threadid=16874)


Geschrieben von Zmaster am 15.04.2004 um 01:41:

  [PHP] aus Verzeichnisschutz wieder ausloggen

Hallo,

auf meiner Homepage habe ich einen Verzeichnisschutz mit htaccess eingerichtet. Soweit so gut.
Nun möchte ich mich aber auch wieder ausloggen können. Das möchte ich mit PHP realisieren, weil mir so spontan nichts anderes einfällt, einen 401-Header zu senden.
Nun lasse ich folgenden Code ausführen, wenn auf ausloggen geklickt wird:
code:
1:
2:
3:
4:
5:
if($menue == "lout") {
	session_destroy();
	Header("WWW-Authenticate: Basic realm=\"User area\"");
	Header("HTTP/1.0 401 Unauthorized");
}
Wird an sich auch wunderbar ausgeführt. Ich bekomme wirklich den 401-Header zu sehen (eine kleine Anmerkung: in Bereich steht auf einmal "User area 32289") und wenn ich ein falsches Passwort eintrage, dann kommt auch meine 401-Seite.
Dummerweise komme ich wieder mit der Zurück-Funktion im Browser auf meine "geheimen" Seiten und kann da auch fröhlich weiter machen.

Mein Ziel:
1) Möglichst die erneute Passwortabfrage weglassen (er loggt sich ja aus und nicht neu ein!)
2) Fehler 401 soll ausgeführt werden
3) er soll nicht mehr über zurück rein kommen (Manchmal lädt der Browser die Seite aus dem Cache nach, das ist nicht so schlimm. Aber keine weiteren Aktionen sollten möglich sein)

Kann mir einer wertvolle Hinweise geben?

Gruß
zmaster



Geschrieben von C-Shell am 15.04.2004 um 13:40:

 

mit google immer auf der richtigen seite:
--------------------------------------------------------------
Da der Browser die Kombination usernameZunge raus asswort zwischenspeichert, wird diese auch bei jeden Zugriff vom Browser automatisch geschickt. (Der Zugriff auf diese geschuetzten Bereiche erfordert fuer JEDES EINZELELEMENT die Genehmigung durch username und passwort.)

Die Loesungen, die man mittels Login und Logout sieht, basieren (meist realisiert mit php) auf Scriptsprachen und der Auswertung von z.B.

- Session-IDs
- Cookies
- Kombinationen von SID und Cookie

d.h.: bei einem Login wird einmalig username und passwort abgefragt, dann wird dem Benutzer eine SID und/oder ein Cookie zugeteilt. Diese werden dann bei Benutzung abgefragt, und bei einem Logout wird das Ganze dann auf Serverseite ebenfalls als ungueltig markiert, auch wenn der Browser noch ein entsprechendes Cookie haben sollte, oder eine SID, z.B. durch die Back-Taste des Browsers - es wird zwar evtl noch der Inhalt des Cache angezeigt, eine "Arbeit" ist nach dem Logoff aber nicht mehr moeglich.

Zurueck zu HTTP_AUTH: es muessen alle Browserfenster geschlossen werden, dabei wird dann der Speichercache ebenfalls gelehrt, und die Kombinationen aus usernameZunge raus asswort befinden sich nach Neustart nicht mehr "zur automatischen Sendung" bereit. Wobei natuerlich Seiten im Festplattencache immer noch vorhanden sind.
Ist es sicherheitsrelevant (z.B. andere Benutzer an gleichem PC), sollte also auch immer der Festplattencache ebenfalls geloescht werden. Gilt uebrigens auch bei den obigen Moeglichkeiten, die ein Logout bieten.



Geschrieben von Sebat am 15.04.2004 um 13:57:

 

du kannst aber auch die Variablen die der Apache / PHP zur verfügung stellt (wo PW und user drin steht) anderweitig beschreiben (etwas faslches eingeben oder "NULL" dann ist auch der Error.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH