Christian Seiler: Ablauf der HTTP-Authentifizierung

Beitrag lesen

Hallo,

hmmm... der Schutz mit dem "Deny,Allow" hat irgendwie nicht so richtig funktioniert (vielleicht liegt es an der Apacheimplementierung - die ich nicht ändern kann..) Ich habe mir mal die Beispiele im PHPManual zu fpassthru angesehen - so richtig auf den Trichter bin ich für eine Lösung "meines" Problems nicht gekommen. Vielleicht hast Du noch ein, zwei Infos für mich, wie Du das meinst...

Naja, ein Beispiel:

So sieht es jetzt aus: (Vereinfacht)

Wurzelverzeichnis
   |- index.php (mit Session »geschützt«)
   |- script.php (mit Session »geschützt«)
   - gesch\_verz/  (mit HTTP-Auth geschützt)         |- gesch\_datei1.html         |- gesch\_datei2.gif         - gesch_datei3.gif

So könnte es dann aussehen:

Wurzelverzeichnis
   |- index.php (mit Session »geschützt«)
   |- script.php (mit Session »geschützt«)
   |- passthru.php (mit Session »geschützt«)
   - gesch\_verz/  (komplett gesperrt)         |- gesch\_datei1.html         |- gesch\_datei2.gif         - gesch_datei3.gif

Du könntest dann Links wie

http://domain/passthru.php/gesch_datei1.html

zusammenbauen. Der Apache ruft automatisch passthru.php auf und Du kannst aus irgendeiner Servervariable (ich erinnere mich nicht mehr, welcher) den Namen der Datei herausholen und diese dann mit fpassthru durchreichen. (Vorher natürlich mit Sicherheitschecks, dass kein '..' im angegebenen Pfad vorhanden ist) PHP hat ja, da es direkt auf dem Webserver ausgeführt wird, Zugriff auf die Dateien in gesch_verz, der Apache wird über

Order Deny, Allow
Deny From all

dazu gebracht, nur noch "403 Forbidden" auszuspucken.

Wenn Du absolute Links in den Dateien verwendest, dann müsstest Du halt einmal in allen Dateien gesch_verz durch passthru.php ersetzen, aber sonst ist diese Lösung mit dem gerinsten Aufwand verbunden. (Wenn wir jetzt mal von allen »sauberen« Lösungen ausgehen, http://user:pass@host/path ist ja nicht »sauber«)

Grüße,

Christian

--
Ich wünsche allen ein frohes neues Jahr 2003!
Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
Hmm, was könnte ich sonst noch in die Signatur schreiben?