Andreas Korthaus: allow_url_fopen - Einstellungen in der php.ini

Beitrag lesen

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

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/