Alex: php-script download in htaccess directory verbieten

Hallo,

bisher hatte ich einige Verzeichnisse auf meinem Server mit htaccess geschützt und dachte das Ganze wäre ziemlich sicher. Jetzt habe ich (eher durch Zufall) festgestellt, dass ich das Prinzip von htaccess nicht so ganz verstanden hatte.
Ich habe nämlich bemerkt, dass ich, etwa eine .rar-Datei, welche sich in einem htaccess geschützten Verzeichnis befindet, über ein php-Script dennoch ohne Probleme downloaden kann (auch ohne Passwort und vorausgesetzt ich weis den Dateinamen).
Man nehme an ich habe eine Datei "test.rar" im Verz. "privat" mit htaccess Schutz. Erstelle ich jetzt eine datei download.php die in einem höheren Verz. liegt und schreibe da rein:

<?php  
$datei = 'privat/test.rar';  
  
$datname = basename($datei);  
	  
    $art = filetype($datei);  
    $gettype = explode(".",$datname);  
    $type = $gettype[1];  
	  
    $groesse = filesize($datei);  
  
    header("Content-type: ".$art);  
    header("Content-Type: application/octet-stream");  
    header("Content-Type: application/force-download");  
    header("Content-Disposition: attachment; filename=".$datname);  
    header("Content-Transfer-Encoding: binary");  
    header("Content-Length: ".$groesse);  
    readfile($datei);  
  
?>

dann lässt sich die Datei auch ohne Passwort und Username downloaden ...

Jetzt habe ich nach einer Möglichkeit gesucht, derartige Downloads über die htaccess Datei (oder die php.ini) in "privat" zu verbieten. Dabei soll php-Schripa die sich im Ordner "privat" befinden alles erlaubt sein, wenn sie aber von außen kommen soll kein Script-Zugriff möglich sein ...

Ich habe es mal mit so ziemlich allem Versucht was ich hier gefunden habe, krieg es aber nicht hin.
Kann mir da jemand etwas auf die Sprünge helfen ??

Danke, Alex

  1. 'ǝɯɐu$ ıɥ

    Jetzt habe ich (eher durch Zufall) festgestellt, dass ich das Prinzip von htaccess nicht so ganz verstanden hatte.

    yep :-)

    dann lässt sich die Datei auch ohne Passwort und Username downloaden ...

    klar

    Jetzt habe ich nach einer Möglichkeit gesucht, derartige Downloads über die htaccess Datei (oder die php.ini) in "privat" zu verbieten. Dabei soll php-Schripa die sich im Ordner "privat" befinden alles erlaubt sein, wenn sie aber von außen kommen soll kein Script-Zugriff möglich sein ...

    da ist dein denkfehler: der zugriff kommt ja nicht von "außen" sondern über das filesystem der kiste - ein "echter" zugriff von außen (über http) ist nicht ohne authentifizierung möglich.
    http://de.selfhtml.org/servercgi/server/htaccess.htm#verzeichnisschutz
    es ist aber besser die scripte außerhalb der document root abzulegen...

    ssnɹƃ
    ʍopɐɥs

    --
    Answers: $1, Short: $5, Correct: $25, dumb looks are still free ...
    1. mmh, stimmt schon, das hatte ich nicht bedacht.
      Ich habe das dpwnloadscript jetzt mal von einem anderen Server aus gestartet und bekam nur eine 0 Kb Datei als Download.
      Ich denke ich werde dieses downloadscript auf meiner Seite in der Form einfach nicht mehr nutzen, ist ja eigentlich auch nicht nötig - Rechtsklick und speichern unter tut es ja auch ...

      Danke Euch allen,
      Alex

  2. Hi,

    bisher hatte ich einige Verzeichnisse auf meinem Server mit htaccess geschützt

    wir reden vermutlich von HTTP Authentication?

    Ich habe nämlich bemerkt, dass ich, etwa eine .rar-Datei, welche sich in einem htaccess geschützten Verzeichnis befindet, über ein php-Script dennoch ohne Probleme downloaden kann (auch ohne Passwort und vorausgesetzt ich weis den Dateinamen).

    Ja sicher, das ist ja auch kein HTTP-Zugriff.

    Jetzt habe ich nach einer Möglichkeit gesucht, derartige Downloads über die htaccess Datei (oder die php.ini) in "privat" zu verbieten. Dabei soll php-Schripa die sich im Ordner "privat" befinden alles erlaubt sein, wenn sie aber von außen kommen soll kein Script-Zugriff möglich sein ...

    Ich verstehe nicht ganz, wo dein Problem liegt. Klar kann ein PHP-Script unabhängig von HTTP-Zugriffsbeschränkungen auf Dateien zugreifen - warum auch nicht? Wenn du das nicht willst, dann stelle eben keine Download-Scripte mit Persilschein zur Verfügung.

    Ciao,
     Martin

    --
    F: Was ist ekliger als ein angebissener Apfel mit einem Wurm drin?
    A: Ein angebissener Apfel mit einem halben Wurm.
    1. 'ǝɯɐu$ ıɥ

      i...ich doch??
      |

      ssnɹƃ
      ʍopɐɥs

      --
      So etwas wie moralische oder unmoralische Bücher gibt es nicht. Bücher sind gut oder schlecht geschrieben. Weiter nichts.
      -Oscar Wilde