allow_url_fopen - einstellungen in der ini
Roger
- php
moin!
ich habe mich jetzt ne ganze weile mit allow_url_fopen rumgeschlagen, bzw. mit der möglichkeit eine datei von einem fremden server zu lesen (textdatei). dabei habe ich folgende fragen:
der inhalt von allow_url_fopen sieht bei mir (erhalten durch ini_get_all() so aus:
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 7
)
...
das bedeutet ja, dass ich mit einem php script eine url von einem anderen server öffnen kann, oder?
per ini_get('allow_url_fopen') bekomme ich den wert 1 angezeigt. ist das der global_value-wert? genügt es, diesen wert abzufragen, um festzustellen, ob man eine datei von einem anderen server lesen kann (ich möchte dazu file() und fopen() benutzen)?
angenommen der wert ist 0, kann ich dann per ini_set den wert für die scriptausführungsdauer verändern? (7 steht doch für PHP_INI_ALL?)
was ist, wenn der safe-mode aktiviert ist. dann geht doch u.u. fopen() nicht mehr?
hat man die möglichkeit die einstellungen so vorzunehmen, dass man trotz der beschränkung die möglichkeiten nutzen kann (ich weiss ja, umsonst gibt es ja keine beschränkungen, aber umsonst gibt es ja auch nicht ini_set() :) )?
gruß.
roger.
hi,
per ini_get('allow_url_fopen') bekomme ich den wert 1 angezeigt. ist das der global_value-wert?
es sollte m.E. der sein, der für dein script der gültige ist - ansonsten macht die funktion doch wenig sinn.
genügt es, diesen wert abzufragen, um festzustellen, ob man eine datei von einem anderen server lesen kann (ich möchte dazu file() und fopen() benutzen)?
würde sagen: ja.
angenommen der wert ist 0, kann ich dann per ini_set den wert für die scriptausführungsdauer verändern? (7 steht doch für PHP_INI_ALL?)
ja, 7 sollte für PHP_INI_ALL stehen - was mich etwas verwundert, weil unter http://www.php.net/manual/de/function.ini-set.php für diese option PHP_INI_SYSTEM steht.
was ist, wenn der safe-mode aktiviert ist. dann geht doch u.u. fopen() nicht mehr?
nein, das dürfte sich (in verbindung mit open_basedir) m.E. nur auf lokale dateien beziehen.
gruß,
wahsaga
moin!
hi,
per ini_get('allow_url_fopen') bekomme ich den wert 1 angezeigt. ist das der global_value-wert?
es sollte m.E. der sein, der für dein script der gültige ist - ansonsten macht die funktion doch wenig sinn.
es gibt auch einen local-wert.
angenommen der wert ist 0, kann ich dann per ini_set den wert für die scriptausführungsdauer verändern? (7 steht doch für PHP_INI_ALL?)
ja, 7 sollte für PHP_INI_ALL stehen - was mich etwas verwundert, weil unter http://www.php.net/manual/de/function.ini-set.php für diese option PHP_INI_SYSTEM steht.
eben deswegen frage ich. mich würde mal die einstellung auf einem server interessieren, der an der einstellung rumgeschraubt hat. bzw. wie im großen und ganzen die standard-konfig aussieht...
was ist, wenn der safe-mode aktiviert ist. dann geht doch u.u. fopen() nicht mehr?
nein, das dürfte sich (in verbindung mit open_basedir) m.E. nur auf lokale dateien beziehen.
verstehe ich nicht ganz. also funktioniert im safe_mode (wenn nichts anderes angegeben fopen() und/oder file() ?
gruß.
roger.
hi,
es sollte m.E. der sein, der für dein script der gültige ist - ansonsten macht die funktion doch wenig sinn.
es gibt auch einen local-wert.
ja.
und?
wenn ein local value angegeben ist, überschreibt dieser den globalen, also ist jetzt der lokale der für dein script gültige.
damit bleibt die aussage
es sollte m.E. der sein, der für dein script der gültige ist - ansonsten macht die funktion doch wenig sinn.
genau so bestehen.
eben deswegen frage ich. mich würde mal die einstellung auf einem server interessieren, der an der einstellung rumgeschraubt hat. bzw. wie im großen und ganzen die standard-konfig aussieht...
wie die standards aussehen, steht doch unter http://www.php.net/manual/de/function.ini-set.php.
verstehe ich nicht ganz. also funktioniert im safe_mode (wenn nichts anderes angegeben fopen() und/oder file() ?
warum sollte es denn nicht?
wie sich safe_mode auf verschiedene funktionen auswirkt, ist unter [linkl:http://www.php.net/manual/en/features.safe-mode.functions.php] beschrieben.
gruß,
wahsaga
Hi!
ich habe mich jetzt ne ganze weile mit allow_url_fopen rumgeschlagen, bzw. mit der möglichkeit eine datei von einem fremden server zu lesen (textdatei). dabei habe ich folgende fragen:
Dies ist eine gefährliche Funktionalität. Denn vieviele Leute verwenden
<?php
include($_GET['file']);
?>
(meist natürlich nicht ganz so auffällig!) und ermöglichen so jedermann das Ausführen von eigenem Code (sind oft die "PHP-includes statt Frames"-Kandidaten, zumal diese oft mit readfile()... auskommen würden, "include" klingt nur logischer...). Ich habe diese Option _immer_ deaktiviert, weil ich sowas auch nicht brauche.
der inhalt von allow_url_fopen sieht bei mir (erhalten durch ini_get_all() so aus:
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 7
)
...
Das hat sich seit PHP 4.3.5 geändert.
das bedeutet ja, dass ich mit einem php script eine url von einem anderen server öffnen kann, oder?
ja.
per ini_get('allow_url_fopen') bekomme ich den wert 1 angezeigt. ist das der global_value-wert?
guck doch mal in die Funktionsbeschreibung: http://de.php.net/function.ini-get-all ;-)
genügt es, diesen wert abzufragen, um festzustellen, ob man eine datei von einem anderen server lesen kann (ich möchte dazu file() und fopen() benutzen)?
AFAIK nicht.
angenommen der wert ist 0, kann ich dann per ini_set den wert für die scriptausführungsdauer verändern? (7 steht doch für PHP_INI_ALL?)
Bis PHP 4.3.4: ja.
Ab PHP 4.3.5: nein.
was ist, wenn der safe-mode aktiviert ist. dann geht doch u.u. fopen() nicht mehr?
http://de.php.net/manual/en/features.safe-mode.functions.php
http://de.php.net/fopen
hat man die möglichkeit die einstellungen so vorzunehmen, dass man trotz der beschränkung die möglichkeiten nutzen kann (ich weiss ja, umsonst gibt es ja keine beschränkungen, aber umsonst gibt es ja auch nicht ini_set() :) )?
Ich wüßte nicht warum das nicht funktionieren sollte.
Grüße
Andreas
Hi!
per ini_get('allow_url_fopen') bekomme ich den wert 1 angezeigt. ist das der global_value-wert?
guck doch mal in die Funktionsbeschreibung: http://de.php.net/function.ini-get-all ;-)
Ich meinte: http://de.php.net/ini_get
genügt es, diesen wert abzufragen, um festzustellen, ob man eine datei von einem anderen server lesen kann (ich möchte dazu file() und fopen() benutzen)?
AFAIK nicht.
Quatsch, natürlich genügt das, ich war noch bei "global vs. local" ;-)
Grüße
Andreas