Ankündigung

Einklappen
Keine Ankündigung bisher.

IE8 verliert Session

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IE8 verliert Session

    Hallo zusammen,

    ich habe gestern Nacht eine neue Version "meiner" Homepage gelauncht und der neue Login funktioniert im Internet Explorer ( nicht.

    Ich habe mich jetzt eine Stunde lang durch diverse Google-Ergebnisse zum Thema gewühlt, und bisher folgendes Unternommen: (alles Unter IExplorer-Datenschutz-Einstellunen "alle Cookies akzeptieren", also ganz niedrig, Cache und Cookies mehrfach gelöscht)

    P3P-Header-Einstellungen (verschiedene):
    PHP-Code:
    header'P3P: CP="IDC DSP COR CURa ADMa OUR IND  PHY ONL COM STA"');
    header'P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 
    header'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
    Brachten jeweils keine Veränderung.

    Ich hatte vorher über ini_set() session.use_only_cookies auf on und session.use_trans_sid auf off gesetzt. Beide habe ich jetzt mit ini_restore() auf den Default-Wert zurückgesetzt.

    Mein Kopfzeilen jeder Datei, die ich aufrufe, sieht momentan so aus:
    PHP-Code:
        /*** Initials ***/
        #error_reporting(E_ALL);
        //@ini_set( 'session.use_only_cookies', '1' );
        //@ini_set( 'session.use_trans_sid', '0' );
        
    @ini_restore'session.use_only_cookies');
        @
    ini_restore'session.use_trans_sid');
        
    //@ini_set( 'allow_url_include', true );
        #setlocale(LC_ALL, 'de_DE');
        #header( "P3P: CP=CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE");
        #header( 'P3P: CP="IDC DSP COR CURa ADMa OUR IND  PHY ONL COM STA"');
        #header( 'P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 
        
    header'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
        
    session_start();
        
    /*** include functions, (for decode())***/
        
    include __SITE_PATH '/includes/' 'functions.php';
        
    $c file_get_contents('log.txt');
        
    $c.= $_SERVER['PHP_SELF']."\n";
        
    $c.= decode($_REQUEST['rt'])."\n";
        
    $c.= print_r($_SESSIONtrue)."\n";
        
    file_put_contents('log.txt'$c);
        
    header("Content-Type: text/html; charset=utf-8"); 
    Und logge damit den Ablauf mit.

    Ein Log-Block ist also Aufgebaut nach:
    - aufgerufene Seite
    - Controller/Action
    - Session-Array

    Mein Aufruf-Reihenfolge ist momentan folgende:
    - Aufruf intern.php (Anzeige Login-Skript), Maske ausfüllen und anmelden.
    - interne Startseite wird angezeigt
    - Klick auf Projekte verwalten (Route: projects/index)
    Im IE8 werde ich jetzt zurück auf die Login-Seite geschickt, in Opera und Firefox komm ich auf die entsprechende Seite.

    Hier das Log-File unter IE8: (nur "relevante" Teile)
    Code:
    /v6/intern.php
    login/index
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [ProjectsController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
    )
    
    /v6/intern.php
    
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [ProjectsController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
    )
    
    /v6/intern.php
    
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [ProjectsController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
        [user] => Array
            (
                [status] => 1
                [username] => lenki
                [request_time] => dcff27ff00f43b1a011474980dee95ba
            )
    
    )
    
    /v6/intern.php
    projects/index
    Array
    (
    )
    
    /v6/intern.php
    login/index
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [ProjectsController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
    )
    Hier der Log-Code ("relevante" Teile), wenn ich den gleiche Aufruf-Abfolge in Opera 10.51 mache:
    Code:
    /v6/intern.php
    login/index
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [HomeController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
    )
    
    /v6/intern.php
    
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [HomeController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
    )
    
    /v6/intern.php
    
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [HomeController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
        [user] => Array
            (
                [status] => 1
                [username] => lenki
                [request_time] => 88346ca1abf3d8fc958cd24a73120fdd
            )
    
    )
    
    /v6/intern.php
    projects/index
    Array
    (
        [init_path] => C:\xampp\htdocs\v6\includes
        [HomeController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [LoginController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [MenuController] => Array
            (
                [currentItemObj] => 
            )
    
        [ControlpanelController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [CalendarController] => Array
            (
                [currentManagerObj] => 
                [currentItemObj] => 
            )
    
        [WildCalendar] => Array
            (
                [currentTimestamp] => 1270080000
                [currentType] => month
            )
    
        [user] => Array
            (
                [status] => 1
                [username] => lenki
                [request_time] => 88346ca1abf3d8fc958cd24a73120fdd
            )
    
    )
    Ein User ist eingeloggt, wenn in $_SESSION['user']['status'] 1 (true) steht.
    Wenn man die beiden Logs vergleicht, fällt auf, dass im IE8 beim Aufrufen von projects/index (Projekte verwalten) die Session komplett leer ist.

    Ich bin am verzweifeln. Jemand eine Idee?

    Viele Grüße
    Max


  • #2
    Kann man das irgendwo online betrachten?

    Kommentar


    • #3
      Öhm, ungern. Über den geschützten Bereich wird u.a. die Mitgliederverwaltung eines Vereins abgewickelt und enthält daher "vertrauliche" (vielleicht nicht das richtige Wort, aber ihr wisst, was ich meine) Daten und ich habe auch keine Dummy-Daten

      Was meinst du denn genauer verstehen zu können, wenn du es Live siehst? *g* Vielleicht kann ich die Beschreibung noch mehr detailieren.

      Edit
      Ich habe gerade festgestellt, dass wenn ich den IE8 im InPrivate-Modus laufen lasse, alles funktioniert.

      Kommentar


      • #4
        Hm, also ich habe jetzt gerade von einem Benutzer mitbekommen, dass es bei ihm im IE8 einwandfrei funktioniert. Ergo muss es doch irgendwie mehr mit den Sicherheitseinstellungen des IE zu tun haben. Oder gar irgendwelchen lokalen Einstellungen?

        Ich sehe, dass der Thread sich ein bisschen von PHP entfernt. Um den Bogen zu schlagen, vielleicht folgende Fragen:

        Gibt es außer dem P3P-Header noch andere "Tricks", mit denen man dem IE signalisieren kann "Hey, ich bin sicher, nimm meine Keks bitte".

        Ich schlage mich heute schon den ganzen Tag damit rum und es lässt mir einfach keine Ruhe. Es ist ja bekannt, dass der IE seine Zicken hat aber es kann ja nicht sein, dass ein Login, indirekt die Session, bei normalen Sicherheitseinstellungen nicht funktioniert.
        Vielleicht noch ein Wort zu meinen Suchen durchs Netz: Alleine bin ich mit dem Problem natürlich nicht. Die meisten ähnlichen Probleme, die ich gefunden habe, ließen sich allerdings mit dem P3P-Header lösen.

        Ich bin weiterhin Dankbar für jeden noch so kleinen Tip, sonst wünsche ich frohe Feiertage

        Kommentar


        • #5
          Diese Logs sind ziemlich wertfrei. P3P brauchst Du auch nicht.

          Dir wird nichts anderes übrig bleiben als Deinen Code auf das Minimum zu reduzieren und so das Problem zu lokalisieren. Im IE reicht schon, wenn Du Cookies versuchst zu überschreiben, denen zu zwischenzeitlich eine andere Cookiedomain oder eine andere Pfadangabe übermittelt hast. Dann überschreibt der IE häufig gar nicht das vorhandene Cookie und liefert ständig das alte mittlerweile unbekannte aus.

          Aber bevor in dieser Richtung spekuliert wird, würde ich erstmal prüfen, ob der IE ein Cookie angeboten bekommt und ob bereits welche vorhanden sind bzw. ob er das neue annimmt.
          meine PHP Scripte

          Kommentar


          • #6
            Gibt es für dieses Problem mittlerweile ein Lösung? Ich habe genau das gleiche Problem. Auf meinem eigenen Rechner kann ich es nicht nachvollziehen, da funktioniert der IE8 einwandfrei, auf dem Rechner nebenan geht es nicht. Per Wireshark konnte ich nachvollziehen, dass die Session nie in das Cookie geschrieben wird.

            Kommentar


            • #7
              Schon

              PHP-Code:
              setcookie("sid",session_id(),(time()+2592000)); 
              probiert?

              Kommentar


              • #8
                Zitat von MarcusS Beitrag anzeigen
                Gibt es für dieses Problem mittlerweile ein Lösung? Ich habe genau das gleiche Problem. Auf meinem eigenen Rechner kann ich es nicht nachvollziehen, da funktioniert der IE8 einwandfrei, auf dem Rechner nebenan geht es nicht. Per Wireshark konnte ich nachvollziehen, dass die Session nie in das Cookie geschrieben wird.
                D.h. der IE8 bekommt es angeboten, aber nimmt es nicht an? Dann sind vermutlich die Cookiedaten falsch.

                Besser wäre es, wenn Du die Cookieinfos mal über das Addon "Display ieHTTPHeaders" ausgeben lässt, um zu prüfen welcher Path, Domain etc. übermittelt wird. Ich gehe mal davon aus, dass da das Problem zu finden ist.

                Denkt wie gesagt daran, dass der IE Probleme damit hat ein gleichnamiges Cookie zu überschreiben, wenn sich zwischenzeitlich Path und oder Domain geändert hat. Im Livebetrieb sollte man daher den Cookienamen lieber ändern. Beim Debugbetrieb sollte man die lokalen Cookies einfach alle löschen.
                meine PHP Scripte

                Kommentar


                • #9
                  Oh, hab gar nicht gemerkt, dass hier nochmal jemand geantwortet hat. Für mich war das Thema schon abgehakt und ich habe bisher keine weiteren Anstrengungen unternommen in der Richtung. Habe auch keine "neuen" Beschwerden von Usern bekommen und die Lösung der Sache daher erstmal niedrig priorisiert.
                  Falls ich irgendwann mal zu einer Lösung kommen sollte, werde ich diese hier gerne Posten bzw. freue mich auch über Lösungen von anderen mit ähnlichem Problem.

                  Kommentar


                  • #10
                    Auch wenn's ein wenig am Problem vorbeigeht - gibt es einen Grund, warum ihr keinen Fallback einsetzt?
                    Dass Links ohne SID "besser" sind weiß ich - für die Usability ist's aber wohl geschickter, wenn der Login funktioniert.
                    Ich habe das in einem Projekt so umgesetzt, dass nach dem Login mehrere Weiterleitungen folgen, bei denen geprüft wird, ob ein Cookie gesetzt werden konnte.
                    Ist das nicht der Fall gibt's die SID eben in der URL.
                    VokeIT GmbH & Co. KG - VokeIT-oss @ github

                    Kommentar


                    • #11
                      Dass Links ohne SID "besser" sind weiß ich - für die Usability ist's aber wohl geschickter, wenn der Login funktioniert.
                      Das ist eine Grundsatzentscheidung zugunsten der Sicherheit. Ein Angreifer wird immer die für ihn am günstigsten funktionierende Variante nutzen und ausnutzen.
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar

                      Lädt...
                      X