2009-01-21 16 views
9

Wir erstellen hier eine Facebook-Anwendung mit der iFrame-Methode. Damit die Anwendung funktioniert, muss sie Cookies innerhalb des Iframes setzen.Zugriff auf Drittanbieter-Cookies in Firefox

Bei Safari sind Cookies von Drittanbietern standardmäßig deaktiviert. Daher leiten wir derzeit den gesamten Browser auf unseren Server um, legen den erforderlichen Cookie zum Verfolgen der Sitzung fest und leiten ihn dann erneut zur Facebook-Anwendungsseite um.

Diese Methode funktioniert und funktioniert gut. Es sei denn, es kommt jemand mit Firefox, der Third-Party-Cookies manuell deaktiviert hat, da Firefox sie standardmäßig aktiviert hat. Safari funktioniert, weil Sie Cookies nicht von einem iframe aus setzen können, aber Sie können sie lesen. Firefox hingegen lässt Sie die Cookies nicht lesen und daher wird es irgendwie unmöglich.

Gibt es trotzdem, dass Firefox Cookies an einen Iframe auf einem externen Server sendet, wenn Cookies von Drittanbietern deaktiviert sind?

+2

Sie sagen "wir müssen 3rd Party Cookies setzen, auch wenn der Benutzer es ausdrücklich verboten hat"? Das klingt für mich nicht völlig legitim. Vielleicht könnten Sie eine Warnung "Drittanbieter-Cookies benötigt" anzeigen? – Piskvor

Antwort

0

Richten Sie das Verhalten nicht auf den Browser aus, sondern auf das Targeting.

Legen Sie den Cookie und die nächste Überprüfung der Seitenlast für sie mit Ihrem JS fest. Wenn sie nicht da sind, legen Sie sie mit der alternativen Methode fest.

(Und stellen Sie sicher, dass Sie für die Benutzer in einer Endlosschleife am Ende nicht ohne Cookies)

Edit: Hmm, wenn FF kann sie nicht gelesen, dass ein Problem sein könnte. Wie wäre es, alle durch dieses System zu schicken?

9

Gibt es trotzdem einen Firefox, um Cookies an einen Iframe auf einem externen Server zu senden, wenn Cookies von Drittanbietern deaktiviert sind?

Nein. Und das ist gut. Deaktivieren von 3rd Party Cookies sollte deaktivieren ihnen.

2

Ja, es werden keine Cookies von Drittanbietern gesendet oder akzeptiert, wenn Sie die Cookies von Drittanbietern deaktivieren. Jedoch; das Kontrollkästchen ist "Cookies von Drittanbietern akzeptieren", so dass es definitiv so aussieht, als sollte es immer noch/senden/die Cookies, nur keine neuen akzeptieren ... wack.

5

Eine Technik besteht darin, einen Hintergrund-POST zu einem versteckten Iframe beim ersten Laden der Seite mithilfe von JavaScript auszuführen. Sobald die POST-Antwort erfolgreich zurückgegeben wurde, können Sie Cookies setzen. Dies beseitigt die Notwendigkeit, die Benutzererfahrung zu beeinflussen (ein Interstitial, um Interaktion zu erzwingen, ist eine andere Technik). Einige weitere Gedanken und Beispielcode hier: http://gist.github.com/586182

+0

Das war sehr hilfreich. Vielen Dank! –