Korrekte Konfiguration des safe mode
Korrekte Konfiguration des safe mode
am 16.06.2005 09:34:56 von Marcus Walther
Hallo,
in der php.ini ist der safe_mode global aktiviert. Fuer einzelne
VirtualHosts soll der safe_mode ausgeschalten werden.
Wie wird das korrekt eingestellt?
php_admin_value safe_mode off
php_admin_value safe_mode Off
php_admin_value safe_mode 0
php_admin_value safe_mode ''
Bei den ersten drei Varianten kann ich sagen, dass PHP-seitig der
safe_mode ausgeschalten wird, Nummer 4 habe ich noch nicht getestet.
Hintergrund des ganzen: Manche Skripte fragen per ini_get("safe_mode")
den Wert dieser Konfiguration ab, um sich dann entsprechend zu verhalten.
Squirrelmail z.B. fragt in ./include/validate.php etwas in der Art:
$safe_mode_off = (!ini_get('safe_mode'));
Das geht nun aber bei den Varianten 1 & 2 daneben. Ich tippe ja fast auf
einen Fehler bei Squirrelmail, wollte aber andere Moeglichkeiten
ausschliessen.
Gruesse, Marcus
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 10:02:34 von dev-null-use-reply-adress
Marcus Walther schrieb:
> php_admin_value safe_mode off
> php_admin_value safe_mode Off
> php_admin_value safe_mode 0
> php_admin_value safe_mode ''
>
> Bei den ersten drei Varianten kann ich sagen, dass PHP-seitig der
> safe_mode ausgeschalten wird, Nummer 4 habe ich noch nicht getestet.
Und wie stellst Du das fest?
> Hintergrund des ganzen: Manche Skripte fragen per ini_get("safe_mode")
> den Wert dieser Konfiguration ab, um sich dann entsprechend zu verhalten.
>
> Squirrelmail z.B. fragt in ./include/validate.php etwas in der Art:
> $safe_mode_off = (!ini_get('safe_mode'));
>
> Das geht nun aber bei den Varianten 1 & 2 daneben.
Siehst Du, safe_mode ist also doch noch an.
Man unterscheidet bei den Konfiguration Direktiven die Werte
enthalten und solche, die einfach nur ein- und ausgeschaltet werden.
Zu letzteren gehört safe_mode. Logisch, oder?
Richtig ist also:
php_admin_flag safe_mode Off
Das hättest im Manual übrigens auch selber nachlesen können:
http://de.php.net/manual/en/configuration.changes.php
Gruß, JPM
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 11:15:28 von Joerg Behrens
"Jens Peter Moeller"
schrieb im Newsbeitrag
news:42b13218$0$27796$9b4e6d93@newsread2.arcor-online.net...
> Marcus Walther schrieb:
>
>> php_admin_value safe_mode off
>> php_admin_value safe_mode Off
>> php_admin_value safe_mode 0
>> php_admin_value safe_mode ''
>>
>> Bei den ersten drei Varianten kann ich sagen, dass PHP-seitig der
>> safe_mode ausgeschalten wird, Nummer 4 habe ich noch nicht
>> getestet.
>
> Und wie stellst Du das fest?
>
>> Hintergrund des ganzen: Manche Skripte fragen per
>> ini_get("safe_mode") den Wert dieser Konfiguration ab, um sich dann
>> entsprechend zu verhalten.
>>
>> Squirrelmail z.B. fragt in ./include/validate.php etwas in der Art:
>> $safe_mode_off = (!ini_get('safe_mode'));
>>
>> Das geht nun aber bei den Varianten 1 & 2 daneben.
>
> Siehst Du, safe_mode ist also doch noch an.
>
>
> Man unterscheidet bei den Konfiguration Direktiven die Werte
> enthalten und solche, die einfach nur ein- und ausgeschaltet werden.
> Zu letzteren gehört safe_mode. Logisch, oder?
Hoert sich ja gut an und werden viele auch so machen aber...
> Richtig ist also:
>
> php_admin_flag safe_mode Off
Die Frage ob es dann konsequenter waere dies auch auf der
http://de.php.net/manual/en/ini.php#ini.list Seite so anzugegen.
Auch entsprechend dann unter
http://de.php.net/manual/en/features.safe-mode.php#ini.safe- mode wo
nun von 'safe_mode boolean' gesprochen wird.
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 16:03:14 von Marcus Walther
Hallo Jens!
Jens Peter Moeller schrieb:
> Marcus Walther schrieb:
>=20
>> php_admin_value safe_mode off
>> php_admin_value safe_mode Off
>> php_admin_value safe_mode 0
>> php_admin_value safe_mode ''
>>
>> Bei den ersten drei Varianten kann ich sagen, dass PHP-seitig der=20
>> safe_mode ausgeschalten wird, Nummer 4 habe ich noch nicht getestet.
>=20
>=20
> Und wie stellst Du das fest?
Ganz einfach: PHP-Funktionen, die durch den Safe-Mode=20
gesperrt/eingeschraenkt werden, funktionieren (z.B. Zugriff auf Dateien=20
anderer Benutzer).
>> Hintergrund des ganzen: Manche Skripte fragen per ini_get("safe_mode")=
=20
>> den Wert dieser Konfiguration ab, um sich dann entsprechend zu verhalt=
en.
>>
>> Squirrelmail z.B. fragt in ./include/validate.php etwas in der Art:=20
>> $safe_mode_off =3D (!ini_get('safe_mode'));
>>
>> Das geht nun aber bei den Varianten 1 & 2 daneben.
>=20
>=20
> Siehst Du, safe_mode ist also doch noch an.
Nein, eben nicht. Siehe oben.
> Man unterscheidet bei den Konfiguration Direktiven die Werte
> enthalten und solche, die einfach nur ein- und ausgeschaltet werden.
> Zu letzteren gehört safe_mode. Logisch, oder?
> Richtig ist also:
>=20
> php_admin_flag safe_mode Off
Fuer Squirrelmail ist dann der Safe-Mode *eingeschalten*, obwohl er=20
tatsaechlich aus ist. Ist im OP wohl nicht eindeutig ruebergekommen.
> Das hättest im Manual übrigens auch selber nachlesen können:
> http://de.php.net/manual/en/configuration.changes.php
Danke, hilft hier aber nicht weiter.
Gruesse, Marcus
PS: Im OP vergessen: PHP 4.3.11.
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 16:06:42 von Marcus Walther
Hallo Joerg!
Joerg Behrens schrieb:
[...]
>>Man unterscheidet bei den Konfiguration Direktiven die Werte
>>enthalten und solche, die einfach nur ein- und ausgeschaltet werden.
>>Zu letzteren gehört safe_mode. Logisch, oder?
>=20
> Hoert sich ja gut an und werden viele auch so machen aber...
>=20
>>Richtig ist also:
>>
>>php_admin_flag safe_mode Off
>=20
> Die Frage ob es dann konsequenter waere dies auch auf der
> http://de.php.net/manual/en/ini.php#ini.list Seite so anzugegen.
Die Entwickler von Squirrelmail haben sich offenbar an diese Variante=20
gehalten.
> Auch entsprechend dann unter=20
> http://de.php.net/manual/en/features.safe-mode.php#ini.safe- mode wo=20
> nun von 'safe_mode boolean' gesprochen wird.
Sehr schoen, ich mag Inkonsitenz und Mehrdeutigkeiten. Als Bug melden?
Gruesse, Marcus
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 18:01:57 von dev-null-use-reply-adress
Marcus Walther schrieb:
>>> php_admin_value safe_mode off
>>> php_admin_value safe_mode Off
>>> php_admin_value safe_mode 0
>>> php_admin_value safe_mode ''
>>>
>>> Bei den ersten drei Varianten kann ich sagen, dass PHP-seitig der
>>> safe_mode ausgeschalten wird, Nummer 4 habe ich noch nicht getestet.
>>
>> Und wie stellst Du das fest?
>
> Ganz einfach: PHP-Funktionen, die durch den Safe-Mode
> gesperrt/eingeschraenkt werden, funktionieren (z.B. Zugriff auf Dateien
> anderer Benutzer).
OK, das ist in der Tat verwunderlich.
>> Richtig ist also:
>>
>> php_admin_flag safe_mode Off
>
> Fuer Squirrelmail ist dann der Safe-Mode *eingeschalten*, obwohl er
> tatsaechlich aus ist. Ist im OP wohl nicht eindeutig ruebergekommen.
Das wiederrum kann ich nicht nachvollziehen. Mit php_admin_flag
muß es funktionieren. Bei mir ist es so gesetzt. Schau Dir doch
mal folgendes Testscript an:
http://www.phpug-hamburg.de/safe_mode.php
>> Das hättest im Manual übrigens auch selber nachlesen können:
>> http://de.php.net/manual/en/configuration.changes.php
>
> Danke, hilft hier aber nicht weiter.
Wieso nicht?
Gruß, JPM
Re: Korrekte Konfiguration des safe mode
am 16.06.2005 20:12:24 von Marcus Walther
Hallo Jens!
>>Fuer Squirrelmail ist dann der Safe-Mode *eingeschalten*, obwohl er
>>tatsaechlich aus ist. Ist im OP wohl nicht eindeutig ruebergekommen.
>
> Das wiederrum kann ich nicht nachvollziehen. Mit php_admin_flag
> muß es funktionieren. Bei mir ist es so gesetzt. Schau Dir doch
> mal folgendes Testscript an:
> http://www.phpug-hamburg.de/safe_mode.php
Bei dir liefert ini_get("safe_mode") ja auch den Wert Null, was dann zu
den korrekten Schlussfolgerungen durch Squirrelmail führt.
Setze ich aber im Virtualhost "php_admin_flag safe_mode off", dann
enthält hier[1] ini_get("safe_mode") den String "off" und schon klappt
die Squirrelmail-Methode nicht mehr korrekt, denn...
$ini = "off";
$safe_mode_off = (!$ini);
var_dump($safe_mode_off);
?>
[...]
[1] Apache/1.3.33, PHP 4.3.11 (modphp)
Gruß, Marcus