.httpaccess

Hallo,

bei Apache kann ich ja mit der .httpaccess den Zugriff auf ein Verzeichnis regeln. Dabei steht es mir frei, eine Einschränkung auf Benutzer oder IP-Adressen machen.
Somit kann ich theoretisch ja auch ein Verzeichnis so schützen, daß ih zwar PHP auf die Dateien zugreiffen kann, aber nicht über einen direkten Zugriff von aussen, indem ich eine Beschränkung auf Localhost setze.
Wenn ich nun aber in diesem Verzeichnis Dateien habe, die ich jemandem per Link zugänglich machen möchte, der sich vorher schon auf der PHP-Seite identifiziert hat, dann habe ich nur die Mölichkeit, diese in ein ungeschützetes Verzeichnis zu setzen, was ich ja gerade eben nicht will, oder ich füge zu der Einschränkung auf Localhost noch Benutzer hinzu. Dann habe ich aber das Problem, daß sich der Benutzer zweimal identifizieren muß. Einmal an der PHP-Seite und einmal dann für den Link.
Gibt es vielleicht eine Möglichkeit, diese Verzeichnisanmeldung gleich im Link mit zu übergeben?

Gruß

Thomas

Hallo,

bei Apache kann ich ja mit der .httpaccess den Zugriff auf ein

Üblicherweise ist kein ‚p‘ im Name, also .htaccess

Wenn ich nun aber in diesem Verzeichnis Dateien habe, die ich
jemandem per Link zugänglich machen möchte, der sich vorher
schon auf der PHP-Seite identifiziert hat, dann habe ich nur
die Mölichkeit, diese in ein ungeschützetes Verzeichnis zu
setzen, was ich ja gerade eben nicht will, oder ich füge zu
der Einschränkung auf Localhost noch Benutzer hinzu. Dann habe
ich aber das Problem, daß sich der Benutzer zweimal
identifizieren muß. Einmal an der PHP-Seite und einmal dann
für den Link.
Gibt es vielleicht eine Möglichkeit, diese
Verzeichnisanmeldung gleich im Link mit zu übergeben?

Das nicht, aber du kannst ein PHP-Script schreiben, das die Autentifizierung übernimmt, die entsprechende Datei von der Festplatte liest und, nach Angabe des richtigen Content-Type Headers, die Datei an den Client sendet.

Grüße,
Moritz

Hallo Moritz,

Üblicherweise ist kein ‚p‘ im Name, also .htaccess

ich dachte mir schon, daß das heute komisch ausschaut. :smile:

Das nicht, aber du kannst ein PHP-Script schreiben, das die
Autentifizierung übernimmt, die entsprechende Datei von der
Festplatte liest und, nach Angabe des richtigen Content-Type
Headers, die Datei an den Client sendet.

Hm, kannst Du mir das in einem Beispiel erklären?

Gruß

Thomas

Hallo,

Das nicht, aber du kannst ein PHP-Script schreiben, das die
Autentifizierung übernimmt, die entsprechende Datei von der
Festplatte liest und, nach Angabe des richtigen Content-Type
Headers, die Datei an den Client sendet.

Hm, kannst Du mir das in einem Beispiel erklären?

Ich kann kein PHP, aber ich kann es in Perl-Pseudocode schreiben:

# Teste, ob sessionid vorhanden ist und user eingeloggt ist:
if (!$is\_logged\_in){
 print "Status: 403 Permission denied\nContent-Type: text/html\n\n";
 print "Permission Denied";
 print " You have to be logged in to access this service";
 print " ";
} else {
 my $file = $cgi-\>param("filename");
 if ($file =~ m#^[^/]+$){
 # Es ist nur sicher, wenn die Datei keine Slashes / enthaelt
 open (my $fn, "sicheres\_verzeichnis/" . $file) or die "Can't read file: $!";
 print "Content-Type: application/octet-stream\n\n"
 print ;
 } else {
 die "Can't allow access to given file";
 }
}

Ich hoffe du verstehst was ich meine.

Grüße,
Moritz

Hm, kannst Du mir das in einem Beispiel erklären?

http://de.php.net/manual/de/features.http-auth.php

Gruß,
Stefan

Hallo Stefan,

http://de.php.net/manual/de/features.http-auth.php

entweder stehe ich auf der Leitung, oder aber ich kann damit das selbe tun, was bei der httaccess-Datei auch passiert. Ich kann aber nicht erkennen, wie ich dem Server bei einem bestehenden httacess-Eintrag durch den Link diese Benutzerauthentifizierung mitgeben kann.

Gruß

Thomas