Skip to content

PHP-Sicherheit

Da lese ich doch gerade auf heise online einen Beitrag von Peer Heinlein über die Gefahren bei der Benutzung von popen() und proc_open() in PHP.

Empfohlen wird dem umsichtigen Administrator das Deaktivieren von einigen PHP-Funktionen mittels disable_functions:

disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Wem das nicht reicht und so wie ich in Sachen Sicherheit leicht paranoid ist, der kann mittels disable_functions in der php.ini eine ganze Menge Funktionen deaktivieren, ohne daß es großartig den Betrieb stört (das ist natürlich von Fall zu Fall unterschiedlich):

Bei mir laufen Wordpress, phpMyAdmin, Squirrelmail, Gallery, Sitebar & Co. ohne diese Funktionen ohne Probleme.

{ 6 } Comments

  1. Michael | 2. Juni 2006 at 20:13 | Permalink

    system() und passthru() werden von vielen Scripts benutzt um die ImageMagick-Tools zu benutzen.

    memory_get_usage kann auch sehr sinnvoll sein, ausserdem sehe ich da die Vulnerability nicht...

  2. Marcel | 2. Juni 2006 at 20:42 | Permalink

    Gallery rennt hier auch ohne Probleme - und das mit ImageMagick.

    Bei memory_get_usage() & Co. gehts mir weniger um Verwundbarkeit als um Informationen, die niemanden etwas angehen.

  3. martin | 16. Juli 2006 at 20:50 | Permalink

    der job von set_include_path lässt sich auch durch ini_set erledigen

  4. atta | 29. August 2006 at 13:19 | Permalink

    Für squirrel benötigten wir auch noch getmypid, sonst klappte nix,
    zudem kann ich keine Datei(en ) mehr als Attachment hinzufügen seidem die disable_functions Direktive gesetzt ist(gleiche Funktionen wie oben).

  5. koenig | 4. Oktober 2006 at 23:05 | Permalink

    Du nennst zwar shell_exec, hast aber exec vergessen! ;)

    http://de.php.net/manual/de/function.exec.php

  6. Marcel | 4. Oktober 2006 at 23:18 | Permalink

    Das braucht zumindest Gallery, um die imagemagick tools ausführen zu können. Es war sowieso eher als Anregung gedacht, für den Einzelfall muss man sich sowieso jedesmal überlegen, was man deaktiviert und was nicht.