Michael Schröpl: Können externe User .php-Files downloaden?

Beitrag lesen

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