Wolfgang: Session-ID in der URL

Hallo.

Wenn in der php.ini die Option "session.use_only_cookies" aktiviert ist, sollte PHP doch eigentlich nicht auf die Weitergabe der Session-ID per URL anspringen. Zumindest geht das aus allen Beschreibungen hervor, die ich bisher zu diesem Thema gelesen habe... Trotzdem reagiert PHP bei mir nicht auf eine Änderung und akzeptiert weiterhin diese Form der Übergabe.

Kann jemand etwas Licht ins Dunkel bringen, was der Grund für dieses Verhalten sein könnte?

-- Wolfgang

  1. Hallo Wolfgang,

    Wenn in der php.ini die Option "session.use_only_cookies" aktiviert ist, sollte PHP doch eigentlich nicht auf die Weitergabe der Session-ID per URL anspringen. Zumindest geht das aus allen Beschreibungen hervor, die ich bisher zu diesem Thema gelesen habe...

    Ja, allerdings erst ab PHP 4.3.0. (laut Doku)

    Trotzdem reagiert PHP bei mir nicht auf eine Änderung und akzeptiert weiterhin diese Form der Übergabe.

    Achtung: use_trans_sid wird durch diese Option _nicht_ ausgeschaltet. Es wird lediglich verhindert, dass session-IDs über URL- oder POST-Parameter eingelesen werden. Du musst session.use_trans_sid schon noch zusätzlich deaktivieren, damit die Ausgabe die Session-ID auch nicht enthält.

    Viele Grüße,
    Christian

    1. Mir ist bekannt, daß "session.use_only_cookies" erst seit Version 4.3.0 unterstützt wird. Und auch, daß "use_trans_sid" dadurch nicht automatisch übergangen wird.

      Mein Problem ist ja aber nicht, daß PHP selber eine Session-ID an die URLs hängt, sondern daß es immer noch die Übergabe der ID per GET _akzeptiert_!

      Wie auch aus der Dokumentation hervorgeht, soll "session.use_only_cookies" aber genau dieses Verhalten unterbinden:

      This option enables administrators to make their users invulnerable to attacks which involve passing session ids in URLs

      und

      session.use_only_cookies spezifiziert, ob das Modul _nur_ Cookies verwendet, um die SID clientseitig zu speichern.

      Hat noch jemand weitere Ideen, wie sich das Problem in den Griff kriegen läßt?

      -- Wolfgang

      1. Hallo Wolfgang,

        Mein Problem ist ja aber nicht, daß PHP selber eine Session-ID an die URLs hängt, sondern daß es immer noch die Übergabe der ID per GET _akzeptiert_!

        Welche PHP-Version? Bei mir (PHP 4.3.2, Debian GNU/Linux sid, selbstkompiliert) tritt dies nämlich nicht auf, ich habe das ganze Verhalten extra vor dem Verfassen meines vorigen Postings noch einmal überprüft: (weil ich mir selbst nicht so ganz sicher war) Wenn ich session.use_only_cookies aktiviert habe, dann werden _keine_ Session-IDs über GET mehr akzeptiert.

        Hast Du in Deinem PHP-Script mal mit ini_get die Einstellung ausgegeben, um zu sehen, ob sie überhaupt richtig greift?

        Viele Grüße,
        Christian

        1. Welche PHP-Version?

          Ich bin momentan blöderweise zum Probieren auf ein fertiges 4.3.1 Binary für Win98 angewiesen...

          Hast Du in Deinem PHP-Script mal mit ini_get die Einstellung ausgegeben, um zu sehen, ob sie überhaupt richtig greift?

          Hmm, gute Idee. Und siehe da: Genau _diese_ Option steht trotz der Aktivierung in der php.ini auf 0.

          Aber wenigstens funktioniert das ganze nun mit einem ini_set zu Beginn des Skripts. Bleibt also nur noch herauszufinden, warum die Einstellung aus der php.ini nicht übernommen wird.

          Vielen Dank für deine Hilfe soweit. :)

          -- Wolfgang