Manuel B.: php.ini mit minmal"rechten"

Ich grüsse den Cosmos,

da ich einige Scripte so schreiben will, das diese auf möglichst allen Servern laufen, will ich meine Testumgebung so konfigurieren das möglichst wenig freiheiten für PHP vorhanden sind.

register_globals ist klar,
short_opentags ist auch klar

Was sollte ich noch alles deaktivieren, um quasi in einer Extremsituation testen zu können?

Ich teste zwar auf PHP 5.2.0, hab aber noch PHP4 installiert und aktivier das Ganze bei Bedarf.

Möge das "Self" mit euch sein

--
Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
  1. Moin!

    Ich grüsse den Cosmos,

    Gruß zurück ;-)

    da ich einige Scripte so schreiben will, das diese auf möglichst allen Servern laufen, will ich meine Testumgebung so konfigurieren das möglichst wenig freiheiten für PHP vorhanden sind.

    Kleiner Vorteil: Dein Skript ist dann nicht nur äußerst portabel, sondern auch relativ sicher und weist eine hohe Codequalität auf.

    register_globals ist klar,
    short_opentags ist auch klar

    Achja, zwei altbekannte Unannehmlichkeiten in PHP …

    Was sollte ich noch alles deaktivieren, um quasi in einer Extremsituation testen zu können?

    magic_quotes*
    error_reporting
    evtl. safe_mode*
    arg_separator.*
    default_mimetype
    default_charset
    fopen wrappers

    Viele Grüße,
    Robert

    1. Ich grüsse den Cosmos,

      Kleiner Vorteil: Dein Skript ist dann nicht nur äußerst portabel, sondern auch relativ sicher und weist eine hohe Codequalität auf.

      Ist einer der Beweggründe. Da ein grosses Projekt ansteht, bei dem es u.a. um Sicherheit geht, ist mir das ebenfalls sehr wichtig.

      magic_quotes*
      error_reporting
      evtl. safe_mode*
      arg_separator.*
      default_mimetype
      default_charset
      fopen wrappers

      safemod ist eh aktiv, da ich mit PHP-CGI arbeite. Charset gibts auch kein Default. Den Rest werd ich mir ansehen. Danke für den Tipp. Wenn noch jemand was weiss, immer her mit Infos ;)

      Möge das "Self" mit euch sein

      --
      Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
      ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
      1. echo $begrüßung;

        safemod ist eh aktiv, da ich mit PHP-CGI arbeite.

        Der Safe Mode ist in der CGI-Variante nicht automatisch aktiv. Andererseits bringt es auch keine Punkte, den unter CGI zu aktivieren, da man mit CGI bessere Möglichkeiten gibt, die dem Safe Mode zugeteilten Aufgaben zu erfüllen. Außerdem kann sich bei CGI jeder seine eigene php.ini in das Script-Verzeichnis legen und den Safe Mode deaktivieren.

        echo "$verabschiedung $name";

        1. Ich grüsse den Cosmos,

          echo $begrüßung;

          safemod ist eh aktiv, da ich mit PHP-CGI arbeite.

          Der Safe Mode ist in der CGI-Variante nicht automatisch aktiv.

          Schon klar. Ich hab den Standardmässig aktiviert, wollte ich damit ausdrücke.n

          Andererseits bringt es auch keine Punkte, den unter CGI zu aktivieren, da man mit CGI bessere Möglichkeiten gibt, die dem Safe Mode zugeteilten Aufgaben zu erfüllen.

          Hast du auch recht. suPHP tut einiges dazu. Die aktivierung hat den Hintergrund, damti ich gezwungen bin, meine Scripte so zu schreiben, das sie auch bei safe_mode on funktionieren.

          Außerdem kann sich bei CGI jeder seine eigene php.ini in das Script-Verzeichnis legen und den Safe Mode deaktivieren.

          Was der User dann in seinem Verzeichnis macht, ist seine Sache, aber erstmal soll das Script mit einer "minimalen" php.ini laufen, ohne das jemand an den Einstellungen rumschrauben muss.

          Möge das "Self" mit euch sein

          --
          Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
          ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    2. Hello,

      magic_quotes*
      error_reporting
      evtl. safe_mode*
      arg_separator.*
      default_mimetype
      default_charset
      fopen wrappers

      Da Du mit CGI arbeitest, wahrscheinlich nicht relevant, aber sonst:

      open_basedir        das ist fast die wichtigste Einstellung im Modul-Modus
      upload_temp_dir
      session.save_path   muss für jede Domain ein eigener sein, sonst kann der PHP-Programmierer
                          die Sessions der anderen Mitnutzer entführen
      save_mode_exec_dir  nur Tools reinpüacken, die auch sicher sind
      disable_functions   sehr nützlich, wenn man nicht alles zulassen will, auch wenn der
                          safe-mode nicht aktiviert ist.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau