Nur "internen" Zugriff erlauben
-
Hallo,
ich habe eine php-Seite, die txt-Dateien manipuliert, sie müssen also sowohl gelesen als auch geschrieben werden dürfen. Ich will aber nicht, dass man diese Dateien öffnen kann, wenn man ihren Namen in die Adresszeile des Browsers eingibt, ist das irgendwie möglich? Bei meinem ftp-Client habe ich eine Bitmaske mit der ich für jede Datei jeweils für user, group und other read, write und execute erlauben oder verbieten kann. Gibts da eine Konfiguration, mit der ich die Dateien nicht im Browser öffnen kann, die php-Seiten darauf aber Zugriff haben, oder wie kann ich das realisieren?
Danke D1B
-
.htaccess
-
Da gibts im Grunde genommen mehrere Möglichkeiten. Sehr geläufig ist wie schon genannt die htaccess-Methode, damit sicherst du ein Verzeichnis durch Zugriff von ausserhalb; lokale Scripte können darauf allerdings unverändert zugreifen.
Möglichkeit zwei wäre die Speicherung dieser .txt Dateien ausserhalb deines Webroots. Auf meinem Server richte ich web/ftp-Zugriffe immer so ein, dass der ftp-root /.../ und der webroot /.../www/ ist, so kann man zwar vom Scipt /.../www/script.php auf /.../daten/datei.txt zugreifen, der direkte Zugriff per Browser ist allerdings nicht möglich. Über kommerziellen Webspace kann ich zwar nicht urteilen, aber ich nehme stark an, dass diese Konfiguration hin und wieder genauso vorkommt.
Möglichkeit drei wäre ein zusätzlicher 'Layer' zwischen dem User und der Textdatei, oder im Klartext: verrate ihm doch gar nicht erst den Dateinamen/pfad (und überprüfe dabei auch dein Script auf Fehlerausgaben, die soetwas enthalten könnten). Eine Alternative dieser Ausführung wäre die Anwendung einer Datenbank, in welcher du einen hash-String mit einem Dateipfad verbindest und in der Öffentlichkeit eben nur dieser hash, nicht jedoch Pfad oder Name der Datei angezeigt werden.
Als Fazit: htaccess ist immer noch am Einfachsten, aber technisch ist es nicht zu 100% sicher, da es sich bruteforcen lässt. Sind dem Benutzer die Dateinamen bekannt (weil er sie zB hinaufgeladen hat), ist Variante 3 nur solange sicher, bis der Pfad bekannt wird. Mein Tipp daher: Variante 2 oder eine Kombination aus 1+3.
-
Vielen Dank für eure Hilfe! Ich werde Variante zwei versuchen, da mein webverzeichnis auch www/ ist. Dann mach ich die txt-Dateien im root und komm dann über .. ran oder?
Danke D1B