php-script download in htaccess directory verbieten
Alex
- php
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
'ǝɯɐ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
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
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
'ǝɯɐu$ ıɥ
i...ich doch??
|
ssnɹƃ
ʍopɐɥs