Können externe User .php-Files downloaden?
dave
- php
0 Thomas Meinike0 Odium0 Mel0 Michael Schröpl
Hallo,
meine Frage hat einen sicherheitstechnischen Hintergrund. Wenn man versucht mit dem Browser eine .php-Datei aufzurufen, gibt der Browser immer nur die durchgearbeitete HTML-Version raus.
Wie sieht es denn aus, wenn ein User mit einem Downloadmanager versucht eine .php-Datei zu downloaden? Kommt er so an den PHP-Code?
Wenn ja, wäre das ja eine ziemliche Sicherheitslücke... er weiss dann genau den Aufbau eines Login-Systems und könnte entsprechende Variablen manuell per GET der Seite zufügen.
Grüsse
Dave
Hallo,
Wie sieht es denn aus, wenn ein User mit einem Downloadmanager versucht eine .php-Datei zu downloaden? Kommt er so an den PHP-Code?
Nein, es wird auch nur der generierte HTML-Code erhalten. Solange der PHP-Interpreter nicht ausfaellt, kommt man nicht an den PHP-Code.
Wenn ja, wäre das ja eine ziemliche Sicherheitslücke... er weiss dann genau den Aufbau eines Login-Systems und könnte entsprechende Variablen manuell per GET der Seite zufügen.
Login-Daten oder DB-Verbindungsinformationen, die z. B. per include() eingebunden werden, sollten generell nicht unterhalb von DocumentRoot sondern in von auszen unzugaenglichen Verzeichnissen gelagert werden.
MfG, Thomas
Hallo,
wenn er keinen ftp-zugang besitzt sollte es auch nicht gehen...der downloadmanager tut dies dann über http und erhält somit eine geparste version...
es empfiehlt sich sowieso zugangsdaten in einer extra zu includierenden datei abzulegen, die oberhalb des webpage-basisverzeichnis liegt...
Odium
Hi,
Wie sieht es denn aus, wenn ein User mit einem Downloadmanager versucht eine .php-Datei zu downloaden? Kommt er so an den PHP-Code?
Auch download manager sprechen die Daten ueber http an, und kriegen daher nur den geparsten Inhalt, sprich html, zu sehen.
Gruss, Mel
Hi Dave,
Wie sieht es denn aus, wenn ein User mit einem Downloadmanager
versucht eine .php-Datei zu downloaden? Kommt er so an den PHP-Code?
Ein Download-Manager tut nichts anderes als ein Browser: Er sendet
HTTP-Requests an den Webserver.
Dieser entscheidet anhand seiner Konfiguration, was er tun soll:
a) Ist für die entsprechende Datei mit der Endung .php eine Verknüp-
fung mit einem PHP-Interpreter definiert, dann wird dieser Inter-
retergestartet,
b) ist etwas anderes definiert, dann passiert etwas anderes.
Bedenke dabei insbesondere, daß eine Datei auf dem Server durchaus
unter mehreren URLs ansprechbar sein kann und daß die genannte Ver-
knüpfungslogik keineswegs serverweit einheitlich definiert sein muß!
Es ist nicht weiter schwer, eine Konfiguration so vorzunehmen, daß
dieselbe PHP-Datei unter dem einen URL ausgeführt und gleichzeitig
unter dem anderen URL ohne Interpretation angezeigt wird.
Wenn ja, wäre das ja eine ziemliche Sicherheitslücke... er weiss
dann genau den Aufbau eines Login-Systems
Deine Besorgnis ist _im Prinzip_ berechtigt.
Ein fehlerhaft konfigurierter Server würde genau diesen Effekt aus-
lösen. So etwas könnte bei einem Upgrade der Server-Software passie-
ren, aber beispielsweise auch dann, wenn ein Anwender die Server-
Konfiguration via .htaccess erweitert und dabei einen Fehler macht.
Es ist daher stets sinnvoll, zu wissen, was man tut, wenn man tat-
sächlich Kennworte in PHP-Skripten ablegt.
Eine mögliche Alternative besteht natürlich darin, genau dies nicht zu
tun und die entsprechenden Informationen statt dessen aus einer Datei
außerhalb des URL-Raums einzulesen, die für einen Besucher nicht direkt
ansprechbar ist. Das mag ein bißchen weniger performant sein, aber es
beruhigt die Nerven ungemein. ;-)
und könnte entsprechende Variablen manuell per GET der Seite
zufügen.
Letzteres ist zudem noch ein besonderes Problem von PHP, das aber
durch Verwendung eines sorgfältigen Programmierstils vermeidbar ist.
Zu diesem Thema gibt es reichlich Threads hier im Archiv.
Viele Grüße
Michael