stephanbauer: $_SESSION will auch nicht (Thema vom 17.07.)

Tom: Benutze einfach nur noch die neueren superglobalen Arrays, die alle mit $_* anfangen. In das Array $_SESSION schreibst Du einfach während des Scriptes irgendwann die zu sichernden Werte rein und wenn das Script stirbt oder normal terminiert,dann werden sie in der zugehörigen Datei gespeichert. Mit dem session_start() stehen sie in $_SESSION wieder zur Verfügung.

Ich verstehe es nicht, aber es will einfach nicht funktionieren..
Die php.ini startet die Sessions automatisch mit use_trans_sid, damit das Ganze auch ohne Cookies funktioniert.
Man behällt auch die ganze Zeit die gleiche Session, sonst hätten sich schon zahlreiche Leute bei mir beschwert.
Aber trotzdem schmeisst es doch einige (mich hat es noch nicht erwischt) immer wieder raus, wenn ich eine IP-Überprüfung in die Session einbaue.

Ich lasse nach dem Login die IP mit
$_SESSION["benutzer_ip"] = $REMOTE_ADDR; //REMOTE_ADDR existiert laut phpinfo()
speichern und überprüfe auf den folgenden Seiten (nur für eingeloggte Benutzer zugänglich) mit
if ( $_SESSION["benutzer_ip"] == "" || $_SESSION["benutzer_ip"] != $REMOTE_ADDR  ) header( "Location: login.php?error=ip&PHPSESSID=".session_id() );

Ich habe zum Glück jemanden gefragt, den es schon bei der alten Version rausgeschmissen hat.
Jetzt schon wieder, nach dem 3. Versuch
Ich komme einfach nicht dahinter, wo mein Fehler steckt
(es steckt auch in keiner Funktion, die Variablen blocken könnte)

  1. Hi stephanbauer,

    Aber trotzdem schmeisst es doch einige (mich hat es noch nicht erwischt) immer wieder raus, wenn ich eine IP-Überprüfung in die Session einbaue.

    Kann es sein, dass sich die IP des Besucher geändert hat? Beispielsweise wenn er DSL hat, könnte es ja sein, dass die Verbindung zwischendurch beendet wurden und beim Wiederaufnehmen er eine neue IP bekommen hat. Frage deine Leute mal, was sie für Internetanbindungen haben.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    - Bitte schickt mir die Antwort als E-Mail an xy@xy.de
    Wie bitte? Noe, gibbet net!
    1. Kann es sein, dass sich die IP des Besucher geändert hat? Beispielsweise wenn er DSL hat, könnte es ja sein, dass die Verbindung zwischendurch beendet wurden und beim Wiederaufnehmen er eine neue IP bekommen hat. Frage deine Leute mal, was sie für Internetanbindungen haben.

      Habe ich mir auch schon gedacht, aber dann müsste die Verbindung bei meinem Freund innerhalb von 30sec. abgebaut worden sein.
      Außerdem werden doch wenn man schnell die Verbindung wieder aufbaut die alten IPs wieder zugewiesen?

      1. Moin!

        Habe ich mir auch schon gedacht, aber dann müsste die Verbindung bei meinem Freund innerhalb von 30sec. abgebaut worden sein.
        Außerdem werden doch wenn man schnell die Verbindung wieder aufbaut die alten IPs wieder zugewiesen?

        Eine IP-Überprüfung in Sessions ist Schwachsinn. Weil ein einzelner Nutzer sowohl dauerhaft eine feste IP haben kann, als auch bei jedem Request wechselnde IPs. AOL und Freenet benutzen beispielsweise Proxyfarmen, bei denen keine feste IP genutzt wird, sondern unterschiedliche.

        Wenn du also deine User nicht ständig wieder zum Login zwingen willst, mußt du auf die IP-Prüfung in jedem Fall verzichnet!

        - Sven Rautenberg

        1. Wenn du also deine User nicht ständig wieder zum Login zwingen willst, mußt du auf die IP-Prüfung in jedem Fall verzichnet!

          - Sven Rautenberg

          Danke erstmal für die Antwort, aber ich würde nun doch gerne etwas aus Sicherheitsgründen als Absicherung einbauen..
          Es gibt jedoch einen großen Anteil an Besuchern meiner Seite, die ohne Cookies arbeiten

          1. Moin!

            Danke erstmal für die Antwort, aber ich würde nun doch gerne etwas aus Sicherheitsgründen als Absicherung einbauen..
            Es gibt jedoch einen großen Anteil an Besuchern meiner Seite, die ohne Cookies arbeiten

            Nimm SSL mit clientseitigen Zertifikaten. Das ist sicher - zumindest solange kein User sein Zertifikat weitergibt.

            Denn wenn du bislang kein SSL verwendest, können deine per Session-Login zugänglichen Daten nur von geringem Wert sein - da ist es dann absolut nicht schlimm, wenn das geringe Restrisiko besteht, dass ein Benutzer seine noch aktive Session-ID per Referrer an andere Server weitergibt, und diese sofort für einen Angriff genutzt wird.

            - Sven Rautenberg

            1. Denn wenn du bislang kein SSL verwendest, können deine per Session-Login zugänglichen Daten nur von geringem Wert sein - da ist es dann absolut nicht schlimm, wenn das geringe Restrisiko besteht, dass ein Benutzer seine noch aktive Session-ID per Referrer an andere Server weitergibt, und diese sofort für einen Angriff genutzt wird.

              Benutze SSL, aber wollte eben irgendwie die aktive Session noch absichern.
              Es sind einfach nur die Benutzerdaten gesichert (Adresse etc) auf die aber direkt über die Session zugegriffen werden kann
              Deswegen wäre die Überprüfung mit der IP ideal gewesen..