Verzeichnisse absichern
Verzeichnisse absichern
Hallo Leute,
Seit einigen Tagen beschäftige ich mich mit PHP.
Ich habe einen Linux Webserver mit PHP laufen.
Dort gibt es ein Verzeichnis für einen User in dem alle für den Loginvorgang benötigten Dateien liegen. Login wird über Sessions geregelt. Das klappt auch, aber das ist ja irgendwie noch nicht allzu sicher.
Innerhalb des Userpfades liegen ja weitere Pfade und z.B. Textdateien. Diese kann man ja, wenn man will einfach durch Eingabe in der URL Leiste des Browsers aufrufen.
Wenn ich ein Login mit htaccess realisiere, geht der Zugriff auf Dateien ohne Autentifizierung definitiv nicht, aber mit der Sessionlösung schon.
Ich würde aber gern den Login via PHP beibehalten, da ich dies wesentlich ansprechender finde.
Meine Frage ist also, wie kann ich die darunterliegenden Pfade so absichern, das ein Zugriff ohne Autentifizierung nicht möglich ist.
Jetzt hab ich mir gedacht, ich erzeuge zum Zeitpunkt des Einloggens mit Hilfe der Session ID temporär einen Link welcher dann zu den Userdaten zeigt und löche diesen Link, wenn der User sich abmeldet. Quasi so, das alle Daten nicht im Userpfad liegen, sondern irgendwo anders auf der Platte.
Ist das die einzige Möglichkeit, oder geht das auch irgenwie einfacher.
MfG
Pepperoni
Seit einigen Tagen beschäftige ich mich mit PHP.
Ich habe einen Linux Webserver mit PHP laufen.
Dort gibt es ein Verzeichnis für einen User in dem alle für den Loginvorgang benötigten Dateien liegen. Login wird über Sessions geregelt. Das klappt auch, aber das ist ja irgendwie noch nicht allzu sicher.
Innerhalb des Userpfades liegen ja weitere Pfade und z.B. Textdateien. Diese kann man ja, wenn man will einfach durch Eingabe in der URL Leiste des Browsers aufrufen.
Wenn ich ein Login mit htaccess realisiere, geht der Zugriff auf Dateien ohne Autentifizierung definitiv nicht, aber mit der Sessionlösung schon.
Ich würde aber gern den Login via PHP beibehalten, da ich dies wesentlich ansprechender finde.
Meine Frage ist also, wie kann ich die darunterliegenden Pfade so absichern, das ein Zugriff ohne Autentifizierung nicht möglich ist.
Jetzt hab ich mir gedacht, ich erzeuge zum Zeitpunkt des Einloggens mit Hilfe der Session ID temporär einen Link welcher dann zu den Userdaten zeigt und löche diesen Link, wenn der User sich abmeldet. Quasi so, das alle Daten nicht im Userpfad liegen, sondern irgendwo anders auf der Platte.
Ist das die einzige Möglichkeit, oder geht das auch irgenwie einfacher.
MfG
Pepperoni
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Du könntest z.B. das Verzeichnis einfach mit einer .htaccess schützen:
Dann könntest du mit einer file.php auf die Dateien zugreifen:
Höchst wahrscheinlich musst du noch einiges in Sachen Sicherheit unternehmen und ob die Headers alle stimmen weiß ich auch nicht so genau, aber zumindest ist es mal ein Ansatz. 
Code: Alles auswählen
<Files "*.*">
Order allow,deny
Deny from all
</Files>
Code: Alles auswählen
// AUTH-Check (session_start() etc.)
$filename = (isset($_GET['file'])) ? $_GET['file'] : '';
// $filename bearbeiten (Ordner hinzufügen etc.)
if (file_exists($filename) && $file = @file_get_contents($filename))
{
header('Content-type: <mimetype>');
header('Content-Length: ' . strlen($file));
echo $file;
}

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Also ich kann htaccess benutzen und mich trotzdem über php Session authentifizieren, ohne für htaccess mich noch mal zu authentifizieren?
Nur für mein Verständniss.
Die Datei htaccess verweist nicht auf ein passwort File sondern sagt in diesem Fall lediglich aus, dass jeglicher Zufriff erst einmal geblockt wird.
Mit meiner php Datei kann ich dann Zugriff auf diese Files erlangen, fall der User eine Session gestartet hat.
Jetzt hab ich ein Menü welches ein Perl Script startet, welches mit Hilfe der übergabe Parameter dann diesen Ordner durchforstet und alle darin enthaltenen Dateien auf dem Schirm auflistet, damit diese dann vom Benutzer geöffnet/heruntergeladen werden können. Die Ausgabe des Perl Scriptes ist ja HTML und nicht PHP, geht dann die Überprüfung auch oder muss ich mein Perlscript in PHP umschreiben?
Nur für mein Verständniss.
Die Datei htaccess verweist nicht auf ein passwort File sondern sagt in diesem Fall lediglich aus, dass jeglicher Zufriff erst einmal geblockt wird.
Mit meiner php Datei kann ich dann Zugriff auf diese Files erlangen, fall der User eine Session gestartet hat.
Jetzt hab ich ein Menü welches ein Perl Script startet, welches mit Hilfe der übergabe Parameter dann diesen Ordner durchforstet und alle darin enthaltenen Dateien auf dem Schirm auflistet, damit diese dann vom Benutzer geöffnet/heruntergeladen werden können. Die Ausgabe des Perl Scriptes ist ja HTML und nicht PHP, geht dann die Überprüfung auch oder muss ich mein Perlscript in PHP umschreiben?
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
PHP juckt wie alle anderen Programme, die auf dem Server direkt laufen (also auch Perl), absolut gar nicht, was in einer .htaccess steht. Die Datei ist nur für den Apache gültig, für alle anderen Programme ist sie nur eine normale Textdatei.Pepperoni hat geschrieben:Die Ausgabe des Perl Scriptes ist ja HTML und nicht PHP, geht dann die Überprüfung auch oder muss ich mein Perlscript in PHP umschreiben?

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Also vielen Dank schon mal für deine Hinweise.
Komme grad vom Weihnachtsmarkt... Lecker Bratwurst...
Hab das jetzt mal ausprobiert. Also Das sperren des Zugriffes auf die Dateien funktioniert so, und das Script kann auch den Ordner auflisten und mir die Dateien auf dem Schirm als Link/(href) augegeben, aber öffnen kann ich sie nicht, da ich ja dann nicht mehr über php die Datei öffne, sondern ein normales HTML Kommando ausführe.
Komme grad vom Weihnachtsmarkt... Lecker Bratwurst...
Hab das jetzt mal ausprobiert. Also Das sperren des Zugriffes auf die Dateien funktioniert so, und das Script kann auch den Ordner auflisten und mir die Dateien auf dem Schirm als Link/(href) augegeben, aber öffnen kann ich sie nicht, da ich ja dann nicht mehr über php die Datei öffne, sondern ein normales HTML Kommando ausführe.
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Naja, da, wo das Perlscript bisher ordner/test.pdf ausgegeben hat, muss jetzt file.php?file=ordner/test.pdf ausgegeben werden. Den Rest machst du dann per php in der file.php. 

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.