• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

iFrame 3rd Cookie werden im Safari blockiert! Safari-Lösung

Hallo SteelWheel,

du bist sicher, dass der Code so richtig ist, da es nicht funktioniert und ich absolut nicht weiterkomme, egal was ich probiere.

LG & Danke
Wolf
 
Nabend,

ich fasse nochmal zusammen, denn womöglich reden wir aneinander vorbei - soll passieren können.

Ich habe ein JavaScript (1) in eine meiner Entwicklungsumgebungen (auch anderer Port, anderes Verzeichnis, anderer Sessionpfad - volles Programm!) eingebunden. Dieses JavaScript lädt von einer externen, live-erreichbaren, echten Domain im WWW eine Datei in ein generiertes Iframe (2). Der Inhalt dieses Iframes sollte mir - im Beispiel - ein alert() abfeuern, wenn localStorage beschrieben vorgefunden wurde (was natürlich erst mit dem zweiten Aufruf sichtbar wird). Eingetragen wurde eine schlichte Zufallszahl.

Ich bin dann mit (1) in eine andere Entwicklungsumgebung bei mir umgezogen - anderer Port, anderes Verzeichnis und anderer Sessionpfad. Erneut wurde die gleiche (2) daher kontaktiert und alle Browser meldeten sich aus der anderen Entwicklungsumgebung mit der alert()-Box; inkl. der besagte Hass ... ehm ... Safari-Browser 5.1.7.

Ich erwähnte, dass Du nicht bottom-up mit einem Iframe arbeiten kannst (Befehle nach "oben" schicken geht nicht). Ich erwähnte auch, dass ich an meiner htaccess eine Modifikation vornehmen musste, um diesen Zugriff überhaupt zu ermöglichen (Auskommentieren). Dann erwähnte ich, dass Dein gefundener Source fehlerhaft war und ergänzte, wo Du zu korrigieren hättest (bspw. "iframe.src", "user_id"). Ich hatte Fragen gestellt, welche nicht beantwortet wurden - ok (bspw. "vendor" und ob entnommen bzw. was da steht).

Soviel zum erwarteten Status Quo.

Nun schreibst Du "da es nicht funktioniert". Ich kann nicht in Dich reinschauen, noch kann ich Telekinese um Dein System hier herfliegen zu lassen oder oder mich in die Infratstruktur bei Dir vor Ort reindenken. Ich habe das aufgegriffen, was Du als TO mehr oder weniger mitgebracht hast; also ein Script, welche Du als Empfehlung irgendwo gefunden hattest und als Muster abgelegt wurde.

Keine Frage, es kann durchaus sein, dass ich Die Ausgangssituation nicht überblicke. Wie oben beschrieben bekam ich auf diese Weise den localStorage der Live-Domain zurück, obwohl ich lokal woanders a) gestartet und b) erneut ausgeführt hatte.

Dazwischen - so auch mein Hinweis - gibt es genug Möglichkeiten, dass es unterbunden wird (mein Vermerk auf "Paranoia-Webmaster").

Dein Hinweis auf "Mobilfunkgeräte" und meine Frage dazu bspw. blieb unkommentiert. Da bin ich dann definitiv raus - ich habe (Paranoia!) kein derartiges Gerät in der Verwendung, um es mit einem Mobilgerätbrowser testen zu können (die eh meist weniger können als die "größeren Geschwister").

So, also ... schenk mal reinen Wein ein, sprich Tachales und mal mir meinetwegen ein Bild, wie ich es möglichst hier nachbauen soll, wie Du es da meinst betreiben zu müssen. Ich hatte nachweislichen Erfolg mit dem Modell - vielleicht liegt es an "lokal"-"live". Muss ich das noch "live"-"live" testen? Dürfte aber eigentlich gar keine Rolle spielen in Deinem Fall, denn Du sprachest von einer Adminoberfläche. Begehe nicht den Fehler und mach ein Scheunentor auf - das wäre die besagte "Kirche" aus meinem ersten Posting, die dann doch nicht im Dorf bleibt.

Hier ist jetzt Feierabend - rechne mit einer Antwort später!
 
Hallo,
danke für deine Geduld und Hilfestellung, an meiner Person.
Es kann durchaus sein, dass wir aneinander vorbeireden, da ich mit dieser hier genannten Problematik, nicht Firm bin und ein „Frischling“.

Ich hoffe, dass meine Ausführung hier richtig verstanden wird, und schildere das Problem noch einmal:

Ich besitze eine Hauptdomain mit SQL, nennen wir sie einfach mal www.H-DOMAIN.tld. Diese Hauptdomain beinhaltet „alles“ für drei / vier Domains. Sie besitzt ein Kundencenter und eine Shop Integration. Wenn ich z.B. bei der www.H-DOMAIN.tld in Kundencenter will, oder ein Produkt in den Warenkorb lege, werden Session-Cookies übertragen um den Vorgang auszuführen.

Jetzt habe ich meine „Unterdomains“ z.B. www.U-DOMAIN.tld. In dieser wird ein Teil, der für die Unterdomain bestimmt ist per iFrame von der Hauptdomain eingebunden (z.B. verschiedene Produkte), so auch durch iFrame das Kundencenter und der Shop. Wenn ein Kunde sich jetzt anmelden will oder ein Produkt in den Warenkorb legen will, wird dieser Vorgang über den eingebundenen iFrame aufgerufen hierbei gehen die Session-Cookies verloren und der Kunde kann sich nicht anmelden bzw. auch kein Produkt in den Warenkorb legen. Der Safari erkennt hier die Session-Cookies als 3rd-Cookie und blockiert diese, sie sind aber wichtig um überhaupt ins Kundencenter zu gelangen oder einen Einkauf durchführen zu können. So muss ich erreichen, das z.B. „unser Freund“ der Safari-Browser den iFrame nicht mehr als solches erkennt oder irgendwie überreden meine Session-Cookies dennoch zuzulassen. Beim IE habe ich dies z.B. mit einem P3P-Header erreichen können. Ab IE11, konnte ich das Shopsystem mit „erlaubten“ Sandbox-Einträgen, dazu „überreden“ meine Session-Cookies nicht zu "verwerfen".

Beispiel:

HTML:
<table cellspacing="0" cellpadding="0" id="main">
<tr><td><iframe src="http://www.H-DOMAIN.tld/shop/" sandbox=" allow-same-origin allow-forms allow-scripts allow-top-navigation"  name="fid1" id="fid1" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0"></iframe></td></tr></table>

Dies funktioniert leider mit dem Safari so nicht.

Nach diesem Prinzip bestehen mehrere Unterdomains und diese werden spezifisch über iFrame upgedatet, Verschiedene Produkte pro Domain etc. das Kundencenter und der Shop/Warenkorb ist aber hier immer gleich und per iFrame eingebunden. So kann ich alle Seiten mit einer Hauptdomain und einem SQL-Server verwalten und updaten.

Ich kann gern eine Skizze anfertigen, hoffe aber dass meine Ausführung verstanden wird.

LG & Danke
Wolf
 
Zuletzt bearbeitet von einem Moderator:
So, dann dürfte jetzt - aus meiner Sicht - klar sein, warum wir aneinander vorbei geredet haben: Du sprichst weiterhin von Cookies, ich von localStorage. Du willst Cookies "vererben", ich beliebigen Content aus localStorage einer Fremdomain. Du dürftest den Unterschied selbst erkennen. Meine Absicht war es, dass man auf der Fremddomain "identifiziert" wird - dass dann alle zu behandelnden Seiten darauf "getrimmt" werden müssten, erwähnte ich.

Dir wäre auch nicht damit geholfen, dass Du die Cookies vom Shop ins localStorage schmetterst (solange dieser (der Shop) es nicht ausliest, auswertet und verwendet, bleibt es für Dich - meine Lösung oben - unbrauchbar, da nicht für die Verwendung domainübergreifend vorbereitet).

Und jetzt, wie sieht Dein Plan B aus?
 
Hallo SteelWheel,
vielen lieben Danke,

Plan B, ja das ist eine berechtigte und gute Frage, habe jetzt absolut keinen, außer, das mir „die Zeit davon rennt“. Da hatten wir doch aneinander vorbeigesprochen… jetzt stehe ich wieder bei 0! Ohoh...

LG & Danke
Wolf
 
Bitte verwende zukünftig keine real existierenden Domains mehr zu illustrativen Zwecken! So existiert H-Domain.de tatsächlich...
Für „Beispiel-Links“, wie beispielsweise Pfadangaben in einer .htaccess-Datei, ist die offizielle Seite der IANA, Example Domain, zu verwenden! Diese existiert zu genau diesem Zweck.

Alternativ kann auch, sofern zur Erklärung mehrere Domains notwendig sind, die fiktive Domainendung .tld verwendet werden (Bsp.: domainA.tld, domainB.tld)


-- Auszug aus den Forenregeln --
 
Hallo,

danke, mir war nicht bekannt, das "H-Domain.de" existent ist, ich hatte dies lediglich als Beispiel verwandt.

LG & Danke
Wolf
 
Hallo SteelWheel,

ich komme nicht weiter und stehe "wie vor ein paar Wochen ohne Idee da. Hast du evtl. da einen Vorschlag.

Vielen Dank & LG
Wolf
 
Zurück
Oben