Wolfgang Berger: Probleme mit Sessions und htaccess

Hallo,

ich habe auf einer Seite eine Benutzerverwaltung über Sessions mit PHP implementiert. Im Moment rufe ich in allen zu schützenden Dateien zu Beginn eine Include Datei auf, welche die nötigen Zugriffsrechte prüft.
<?php include("restricted.inc.php"); ?>

Allerdings habe ich jetzt das Problem, wie ich Binärdateien schütze, die ebenfalls nur von berechtigten Benutzern heruntergeladen werden dürfen (pdf, doc,...). Ich habe die Dateien in ein Verezeichnis gestellt, welches per htaccess und deny all gegen Zugriff von Aussen geschützt ist. Wie gebe ich jetzt aber diese Dateien dem Benutzer ? Muss ich ein download.php schreiben, welches die Datei quasi durchreicht ?

Gibt es eine sinnvolle Möglichkeit, Verzeichnisse mit htaccess zu schützen, aber anstatt des Authorisierungspopups eine php Seite mit Eingabeformular zu verwenden ? Das Passwort soll dabei aber nicht als Teil der URL übermittelt werden!

Viele Grüße
Wolfgang

  1. Moin!

    Muss ich ein download.php schreiben, welches die Datei quasi durchreicht ?

    Ja.

    - Sven Rautenberg

    --
    SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  2. Hallo Wolfgang,

    da es Dutzende solche Diskussionen im Archiv gibt, geb ich Dir nur eine kurze Antwort.

    <?php include("restricted.inc.php"); ?>

    Tipp: ' statt " verhindert, dass PHP Strings ohne Variablen oder Sonderzeichen drin parsen muss. Bringt Performance.

    Muss ich ein download.php schreiben, welches die Datei quasi durchreicht?

    Ja, die wohl beste Variante. Header und readfile sind Deine Funktionen dafür.

    Gibt es eine sinnvolle Möglichkeit, Verzeichnisse mit htaccess zu schützen, aber anstatt des Authorisierungspopups eine php Seite mit Eingabeformular zu verwenden?

    Nein, da der Server nur sagt, ich will ein Passwort, und wie danach gefragt wird, klärt der Browser des Nutzers.

    Das Passwort soll dabei aber nicht als Teil der URL übermittelt werden!

    Guter Ansatz, aber wenn Du das Passwort nicht auf der Nutzerseite bereits veschlüsselst, geht es dennoch im Klartext durch die Leitung, ausser, du kannst Digest Auth verwenden. Zur clientseitigen Verschlüsselung gibt es einen Feature-Artikel im JavaScript-Bereich, Digest Auth sollte als Suchbegriff dutzende Unterhaltungen dazu zu Tage fördern. ;)

    Gruss, Thoralf

    --
    Sic Luceat Lux!