.htaccess Verzeinisschutz
ToshiOzumi
- sonstiges
0 jobo0 ToshiOzumi0 jobo
1 dedlfix
Hallo,
ich habe eine Seite mit einem Login Bereich. In diesem Bereich werden Dateien abgelegt, die dann den anderen Mitbenutzern zugänglich gemacht werden. Alles schön und gut, alles funktioniert. Problem ist jetzt, wenn ich die Datei und den genauen Ort im Netz wisse, kann ich es direkt in der Adresszeile eingeben und darauf zugreifen. Das ist natürlich nicht im meinem sinne.
Jetzt habe ich viel rumgelesen und auf .htaccess gekommen. Weiß aber da zu wenig wie ich es machen soll. Wenn ich es wie in SELFHTML mit Passwortschutz beschrieben mache, werde ich doppelt nach dem Benutzernamen gefragt.
Ich hoffe das es möglich ist, beim externen Zugriff, einfach eine Fehlerseite anzeigen zu lasse? Und wenn dann wie?
Sorry bin ein NOB in Sachen .htaccess.
Toshi
Hallo,
Jetzt habe ich viel rumgelesen und auf .htaccess gekommen. Weiß aber da zu wenig wie ich es machen soll. Wenn ich es wie in SELFHTML mit Passwortschutz beschrieben mache, werde ich doppelt nach dem Benutzernamen gefragt.
Wieso doppelt? Du kannst auch das Verzeichnis komplett gegen Außenzugriff schützen:
Deny from all
Allow from localhost
Dann müssten aber alle anfragen über eine Art Frontcontroller gehe. So mit komplett-Noob wirds da schwierig.
Gruß
jobo
Hallo
muss ich das jetzt in das Verzeichnis das ich schützen will speichern, oder kann ich im übergeordneten Ordner Pfade bestimmen für welche Ordner das gelten soll?
Deny from all
Allow from localhost
So mit komplett-Noob wirds da schwierig.
Bin nur ein komplett-Noob was das htaccess angeht.
Danke Schon mal
Toshi
Hallo,
wie gesagt, mit "komplett-Noob" ists schwer hier. Hier eher: bin "noch-Noob" würde aber gerne, kann aber nicht, weil, hab aber schon hie und da gelesen aber das und das nicht kapiert. ansonsten ja: du kannst komplette verzeichnisse mit unterverzeichnmissen schützen.
Gruß
jobo
Hi!
Ich hoffe das es möglich ist, beim externen Zugriff, einfach eine Fehlerseite anzeigen zu lasse? Und wenn dann wie?
Wie willst du oder besser gesagt der Webserver unterscheiden, ob ein Request berechtigt ist oder nicht? Er muss dazu die Berechtigung prüfen. Wenn das der Apache machen soll, musst du dessen Userverwaltung bemühen. Wenn das nur dein Script machen soll, musst du die Auslieferung über den Apachen verhindern und eine alternative Downloadmöglichkeit erstellen.
Die beste Lösung ist, nicht öffentlich zugängliche Dinge in Verzeichnissen abzulegen, die nicht öffentlich sind. Dann schreibt man sich ein so genanntes Download-Script, das auf Anforderung und nach Autorisationsprüfung die Datei durchreicht.
Um solch ein unzugänglihces Verzeichnis zu erstellen, muss man meist erst einmal die Documentroots in Unterverzeichnisse des eigenen Kundenverzeichnisses legen.
/kunden/ToshiOzumi/ -- Kundenverzeichnis und Documentroot in einem - bisheriger Zustand
/kunden/ToshiOzumi/domain1/ -- DocumentRoot für die erste Domain
/kunden/ToshiOzumi/domain2/ -- DocumentRoot für eine zweite Domain
Die Domains sind nun so zu konfigurieren, dass sie nicht mehr auf / zeigen sondern auf /domain1/ usw. (relativ zum Kundenverzeichnis aus gesehen. Solche eine Konfigurationsmöglichkeit muss eigentlich jeder Provider bieten, der mehrere Domains pro Kunden anbietet.
Nachdem man alle Domain-DocumentRoots in Unterverzeichnisse gelegt hat, kann man sich ein Verzeichnis erstellen, auf das keine Domain zeigt
/kunden/ToshiOzumi/dateien/
Alles in diesem Verzeichnis liegende ist nun nicht mehr direkt erreichbar. Das Download-Script kann (innerhalb des DocumentRoot residierend) aber über das Dateisystem auf dieses Verzeichnis zugreifen und die Datei durchreichen (PHP: Header senden und readfile()).
Die weniger gute Möglichkeit ist, wenn man die Domains nicht wie oben beschrieben konfigurieren kann und alles im Kundenverzeichnis über das Web erreichbar ist. Dann kann man sich nur so behelfen, dass der Zugriff auf das Dateiverzeichnis über den Apachen grundsätzlich verboten wird: deny from all. Das Downloadscript liegt wie oben in einem anderen Verzeichnis und rückt nach erfolgreicher Autorisierung die Datei raus.
Lo!