open_basedir: Interpretation einer Warnung
Robert Bienert
- php
Moin!
Mein Webhoster hat nun als Sicherheitsmaßnahme Datei- und Verzeichniszugriffe via open_basedir eingeschränkt, was u.a. zu folgender Warnung führt:
Warning: chdir() [function.chdir]: open_basedir restriction in effect. File(/srv/www/htdocs/web35/html) is not within the allowed path(s): (/srv/www/htdocs/web35/html/:/srv/www/htdocs/web35/phptmp/:/srv/www/htdocs/web35/files/:/srv/www/htdocs/web35/atd/)
Zusammengefasst heißt das doch, dass sich /srv/www/htdocs/web35/html nicht in /srv/www/htdocs/web35/html/ befindet, was ich etwas verwirrend finde, da es sich doch um das selbe Verzeichnis handelt. Oder verstehe ich da open_basedir nicht richtig?
Viele Grüße,
Robert
Hallo Robert,
Zusammengefasst heißt das doch, dass sich /srv/www/htdocs/web35/html nicht in /srv/www/htdocs/web35/html/ befindet, was ich etwas verwirrend finde, da es sich doch um das selbe Verzeichnis handelt. Oder verstehe ich da open_basedir nicht richtig?
Ja, denn open_basedir gibt keinen Verzeichnis an, sondern ein Datei-Prefix. Wenn also /srv/www/htdocs/web35/html als open_basedir-Wert eingestellt wäre, könnte ein Script trotzdem noch auf /srv/www/htdocs/web35/htmlfoo/bar.txt zugreifen. Du solltest also einfach den abschließenden Slash hinzufügen, das dürfte dein Problem beheben.
Schöne Grüße,
Johannes
Moin Johannes!
Zusammengefasst heißt das doch, dass sich /srv/www/htdocs/web35/html nicht in /srv/www/htdocs/web35/html/ befindet, was ich etwas verwirrend finde, da es sich doch um das selbe Verzeichnis handelt. Oder verstehe ich da open_basedir nicht richtig?
Ja, denn open_basedir gibt keinen Verzeichnis an, sondern ein Datei-Prefix. Wenn also /srv/www/htdocs/web35/html als open_basedir-Wert eingestellt wäre, könnte ein Script trotzdem noch auf /srv/www/htdocs/web35/htmlfoo/bar.txt zugreifen.
Ah, verstehe. Ich hoffe doch, dass PHP auch so schlau™ ist, '..' nicht als Bestandteil eines Dateinamens zuzulassen.
Du solltest also einfach den abschließenden Slash hinzufügen, das dürfte dein Problem beheben.
So ist es. Vielen Dank dafür!
Schönen Sonntag,
Robert