PHP: Dynamisches open_basedir

Dieser Patch für PHP – ursprünglich für Redio Webhosting geschrieben – ermöglicht es Teile der Skriptpfades in die PHP-Einstellung open_basedir einzufügen.

Dazu ein Beispiel: Das aufgerufene Skript hat den Dateisystempfad /srv/www/t/test/pub/skript.php. Die php.ini sieht wie folgt aus:

open_basedir = "/srv/www/$2/$3/:/tmp/:/srv/www/includes/"

$2 wird nun vor jedem Aufruf des Skriptes mit t und $3 mit test ersetzt, sodass die Einstellung open_basedir innerhalb des Skriptes den Wert /srv/www/t/test/:/tmp/:/srv/www/includes/ hat.

Es werden allerdings nur die ersten zehn Teile des Skriptpfades zerlegt und durch die Variablen $0 bis $9 zur Verfügung gestellt. Außerdem sollten die ersetzten Variablen nicht durch den Nutzer beeinflussbar sein, da es sonst zu Pufferüberläufen kommen könnte.

Download (2009-03-27, PHP 5.2.9, fastcgi)


#0013, erstellt: 2009-03-27, aktualisiert: 2009-03-27, src, meta
Start, Impressum, zurück: Rechteloser Perl Nameserver, vor: Endlicher Automat als Registermaschinenprogramm