Session-Cookies und IE 8

8

Ich habe kürzlich eine einfache Web-App für Tomcat entwickelt. Die App verwendet eine ziemlich standardmäßige sitzungsbasierte Sicherheit, bei der ein angemeldeter Benutzer eine Sitzung erhält.

Sitzungen funktionieren in Firefox und Chrome einwandfrei, erfordern jedoch die Verwendung von jsessionid in der URL für IE (getestet 7 und 8), die auf einen mittleren Datenschutz eingestellt ist. In IE 8 habe ich versucht, die Cookie-Behandlung außer Kraft zu setzen, indem ich "Alle Cookies von Drittanbietern zulassen" und "Alle Sitzungs-Cookies zulassen" aktiviere - keine Würfel. Wenn ich jedoch Tomcat auf meinem lokalen Computer starte, akzeptiert IE den Cookie und Sitzungen funktionieren einwandfrei.

Und jetzt für die HTTP-Header.

Von Chrome erhält ein angemeldeter Benutzer eine Sitzung

%Vor%

Ab IE 8 mit Standard-Sicherheit und Datenschutz auf mittlerer Ebene -

%Vor%

Ich dachte, es könnte P3P sein, aber beim Hinzufügen einer kompakten Richtlinie ändert sich nichts. Dies ist die Standard-Tomcat-Sitzung, also bin ich wirklich überrascht, dass ich bisher keine anderen Leute mit dem gleichen Problem finden konnte. Hat jemand irgendwelche Ideen?

EDIT 4. 3. 2010 -

Tut mir leid, wenn ich das nicht klar gemacht habe - ich habe es von mehreren anderen IE-Instanzen ausprobiert - Kollegen in der Halle, etc.

EDIT 4. 3. 2010 -

Ich habe auch versucht, die Eingabeaufforderung für alle Cookies zu aktivieren, bekomme aber keine Eingabeaufforderung. Das Festlegen der Domäne im Header "Set-Cookie" mit Fiddler hat ebenfalls keinen Unterschied gemacht.

    
Matt Luongo 26.03.2010, 15:08
quelle

10 Antworten

9

Ich bin genau auf dieses Problem gestoßen, habe eine Weile geforscht und folgendes gefunden:

Ссылка

besagt, dass Domänennamen, die Unterstriche enthalten, Probleme mit Windows Server, Tomcat und IE verursachen

nicht sicher, ob dies Ihr Problem behebt (und an diesem Punkt ist Ihnen wahrscheinlich egal), aber vielleicht kann die nächste Person, die kommt, einen gewissen Nutzen daraus ziehen.

    
johnbr 05.08.2010 21:11
quelle
5

Problem: IE8 weigerte sich, Cookies auf einer Website zu akzeptieren, die ich erstellt hatte, aber Firefox und IE7 funktionierten gut und hatten das schon seit Ewigkeiten getan - das war stabiler Code.

Lösung (für mich): Mein Server befindet sich in einer anderen Zeitzone als der Client-Rechner. Der STUPID, IDIOTIC IE8 versucht clever zu sein und akzeptiert keine Cookies (die auf dem lokalen Client-Computer gespeichert sind) mit einer Lebensdauer von 20 Minuten. Mein PHP-Code stammt direkt aus dem Lehrbuch:

%Vor%

Aber es funktioniert gut, wenn ich es zum Beispiel ändern -

%Vor%

Das bringt mich immer noch dazu, dass der Cookie nach 20 Minuten stirbt, aber zumindest meine Benutzer können meine Website jetzt mit IE8 benutzen. Ich gebe diese Information weiter, für den Fall, dass es jemand anderem hilft.

    
Garth 10.08.2010 11:36
quelle
1

Haben Sie überprüft, ob die Serverzeit korrekt ist?

Ich hatte in letzter Zeit ähnliche Probleme, da IE Cookies nicht richtig akzeptiert hat. Nach einer Menge Kopfzerbrechen stellte sich heraus, dass der Zeitunterschied zwischen dem Server und den Client-Computern so groß war, dass IE den Cookie nicht akzeptieren wollte. Dies war jedoch in Apache.

    
Giles Smith 31.03.2010 10:52
quelle
1

Versuchen Sie es mit dem Standard-HTTP-Port (80). Ich habe mehr als einmal über Probleme mit Portnummern in URLs bezüglich Datenschutz / Sicherheit in IE gelesen, aber zu diesem Zeitpunkt scheint es keine relevanten Links zu finden.

    
Josef Pfleger 01.04.2010 23:20
quelle
1

Ich stimme Lexicore zu - das Cookie-Protokoll vom Webserver sieht richtig aus, also gibt es etwas mit IE. Es wäre einfacher herauszufinden, wie wir das Problem angehen könnten, wenn wir besser verstehen würden, warum IE den Cookie ablehnt. Bitten Sie alternativ einen Freund, die Website für Sie im Internet Explorer aufzurufen, um zu bestätigen, dass es sich um ein Serverproblem und nicht um ein Problem mit der Browser-Instanz handelt.

Hier sind einige Dinge zu überprüfen, um zu helfen, mit IE und Cookies zu debuggen - leider gibt es eine Unordnung von Optionen zu überprüfen. Es tut mir leid, wenn einige dieser Dinge grundlegend scheinen - ich will einfach keine Annahmen machen. Ich folge dafür in IE 8.0.

Suchen Sie zuerst in IE nach der Ziel-Website ( Ссылка ). Dann:

  1. Bestätigen Sie, welche Zone IE " Ссылка " klassifiziert. (Dies könnte erklären, warum es mit Tomcat auf Ihrem lokalen Computer funktioniert.) Die Zone wird in der unteren Leiste des Browsers angezeigt und lautet höchstwahrscheinlich "Internet". Wenn stattdessen "Lokales Intranet", "Vertrauenswürdige Site" oder "Eingeschränkte Site" angezeigt wird, kann dies ein Teil des Problems sein. Sie sollten Ihre Frage aktualisieren oder herausfinden, warum sie nicht als Internet klassifiziert ist.

    / li>
  2. Doppelklicken Sie auf den Zonenindikator in der unteren Leiste (vermutlich "Internet"), um den Sicherheitsdialog zu öffnen. Ist die Sicherheitsstufe für Internet auf Mittelhoch eingestellt? Wenn dies nicht der Fall ist, könnte dies ein Teil des Problems sein und Sie sollten es wahrscheinlich zurückstellen, um es Ihren Benutzern zuzuordnen.

  3. Wählen Sie die Zone "Internet" und klicken Sie dann auf die Schaltfläche "Benutzerdefinierte Stufe ...", um das Dialogfeld "Sicherheitseinstellungen" zu öffnen. Bestätigen Sie, dass die Option "Userdata Persistence" auf "Enable" gesetzt ist. Die Option "Userdata Persistence" befindet sich im unteren Viertel der Optionsliste im Abschnitt "Miscenllanousous" (am Ende des Abschnitts oberhalb des nächsten Abschnitts "Scripting").

  4. Klicken Sie in jedem Dialogfeld auf OK, um beide zu schließen.

  5. Klicken Sie auf der Menüleiste (wenn sie nicht aktiviert ist) auf "Tools" & gt; "Internet Optionen". Wählen Sie die Registerkarte "Datenschutz". Ich weiß, dass Sie erwähnt haben, dass Sie hier einige Dinge ausprobiert haben, aber diese Änderungen wirken sich möglicherweise nicht auf Ihre Site aus, wenn Ihre Site nicht in der Internetzone ist oder wenn Ihre Site in der "Per Site Privacy Actions" -Ausschlussliste aufgeführt ist / p>

  6. Ist die Datenschutzeinstellung auf der Registerkarte Datenschutz auf Mittel eingestellt? Wenn nicht, möchten Sie möglicherweise auf die Standardeinstellung zurücksetzen.

  7. Klicken Sie auf die Schaltfläche "Sites", um das Dialogfeld Datenschutzaktionen pro Site zu öffnen. Ist deine dev1-Seite aufgelistet? Wenn ja, entfernen Sie es. Klicken Sie auf OK, um das Dialogfeld zu schließen. Alternativ könnten Sie Ihre dev1-Seite dazu zwingen, immer Cookies zuzulassen.

  8. Klicken Sie auf die Schaltfläche "Erweitert". Ist "Automatische Cookiebehandlung überschreiben?"? Wenn dies der Fall ist, können Sie das Kontrollkästchen deaktivieren, um es mit Ihren Benutzern abzugleichen. Alternativ können Sie es aktivieren und "Immer Sitzungscookies zulassen" aktivieren.

  9. Klicken Sie in jedem Dialogfeld auf OK, um beide zu schließen.

  10. Vergewissern Sie sich, dass sich der Browser noch auf der Zielseite befindet (' Ссылка '). Klicken Sie auf "Anzeigen" & gt; "Datenschutzrichtlinie für Webseiten", um den Dialog "Datenschutzbericht" anzuzeigen. Enthält die Liste " Ссылка "? Zeigt die Cookie-Spalte "Akzeptiert" für " Ссылка "?

  11. an
  12. Wählen Sie " Ссылка " aus der Liste. Klicken Sie auf Zusammenfassung, um die Datenschutzrichtlinie anzuzeigen. Wenn für Ihre Website eine festgelegt ist, sollten Sie sie hier sehen. Andernfalls sollten Sie eine Nachricht erhalten, dass eine Datenschutzrichtlinie nicht gefunden wurde. Sehen Sie sich den unteren Teil des Dialogs an, um zu sehen, wie die Site Cookies verwenden kann (vergleichen, immer erlauben oder niemals erlauben).

Hoffe, das hilft oder gibt dir ein paar Ideen, die du verfolgen kannst.

Hinweis:

Bert F 02.04.2010 02:08
quelle
1

Dieses Forum über P3P scheint relevant.

Haben Sie auch in Betracht gezogen, Ihre Domain und das Ablaufdatum für den Sitzungscookie festzulegen?

    
Jon D. Koon 02.04.2010 17:59
quelle
0

Das hat eindeutig nichts mit Tomcat zu tun, da der Cookie gesetzt wird - vom IE einfach nicht akzeptiert. Dies muss dann Sicherheitsproblem in IE sein. Vielleicht diese MS Artikel Melodie helfen würde.

    
lexicore 29.03.2010 12:31
quelle
0

In welcher Sicherheitszone ist der dev1-Standort? IE behandelt Cookies und viele andere Sicherheitseinstellungen unterschiedlich, je nachdem, welche Zone (und wie die Zone konfiguriert ist).

Versuchen Sie, die dev1-Site explizit als Teil der vertrauenswürdigen Sites festzulegen und zu sehen, was passiert.

Zonen:

%Vor%

Muss der Cookie auch auf den / Testpfad beschränkt werden? Versuchen Sie, es für / einzustellen und sehen Sie, ob das einen Unterschied macht.

    
Goyuix 01.04.2010 23:26
quelle
0

Ich würde versuchen, den vollständig qualifizierten Hostnamen des Servers zu verwenden. MSIE behandelt Hostnamen ohne Domänen als "Lokales Intranet" und behandelt die Sicherheit unterschiedlich.

Insbesondere anstelle von:

%Vor%

Versuchen Sie etwas wie:

%Vor%     
Jack Leow 01.04.2010 23:29
quelle
0

Es scheint von dem, was Sie sagen, dass Sie nur dieses Problem in IE gesehen haben und nur Computer in Ihrem Büro verwenden. Gibt es eine Art "Sicherheitssuite", die von der IT auf allen Bürocomputern installiert wird, und wenn ja, können Sie sie vorübergehend deaktivieren? Oft hängen diese Arten von Anwendungen in IE und Muck mit seinem HTTP-Stack. Wenn Sie Software wie diese installiert haben, haben Sie eine "saubere" Installation oder einen Computer, auf dem Sie testen können?

    
Jacob 03.04.2010 15:59
quelle