Ich habe zwei Websites, sagen wir, sie sind example.com
y anotherexample.net
. Auf anotherexample.net/page.html
Ich habe eine IFRAME SRC="http://example.com/someform.asp"
. Dieser IFRAME zeigt ein Formular an, das der Benutzer ausfüllen und an http://example.com/process.asp
. Wenn ich das Formular öffne (" someform.asp
") in einem eigenen Browser-Fenster, funktioniert alles gut. Allerdings, wenn ich lade someform.asp
als IFRAME in IE 6 oder IE 7, werden die Cookies für example.com nicht gespeichert. In Firefox tritt dieses Problem nicht auf.
Zu Testzwecken habe ich eine ähnliche Einrichtung auf http://newmoon.wz.cz/test/page.php .
example.com
verwendet Cookie-basierte Sitzungen (und es gibt nichts, was ich dagegen tun kann), also ohne Cookies, process.asp
wird nicht ausgeführt. Wie kann ich den IE zwingen, diese Cookies zu speichern?
Ergebnisse des Schnüffelns des HTTP-Verkehrs: Bei der Antwort GET /someform.asp gibt es einen gültigen Set-Cookie-Header pro Sitzung (z. B. Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY
), aber bei der Anfrage POST /process.asp gibt es überhaupt keinen Cookie-Header.
Edit3: einige AJAX+serverseitige Skripte sind anscheinend in der Lage, das Problem zu umgehen, aber das sieht sehr nach einem Bug aus, und es eröffnet eine ganz neue Reihe von Sicherheitslücken . Ich möchte nicht, dass meine Anwendungen eine Kombination aus Fehler und Sicherheitslücke verwenden, nur weil es einfach ist.
Bearbeiten: die Die P3P-Politik war die Hauptursache , vollständige Erklärung unten.