2014-01-09 5 views
6

Ich möchte Sitzungen in meiner Rails 4-Anwendung über eine AJAX-Anforderung in einem Iframe erstellen.Warum verursacht Safari eine Rails-CSRF-Ausnahme, in der Chrome nicht vorhanden ist?

Im iframe Ich habe ein Formular für eine neue Sitzung mit dem Attribute remote: true wie üblich enthält, und enthalten <%= token_tag %> in Form Körper sowie <%= csrf_meta_tags %> im Kopf des Layouts.

Chrome hat kein Problem, dieses Formular zu senden und eine Sitzung zu erstellen. Unter gleichen Bedingungen verursacht Safari eine CSRF-Ausnahme.

Warum passiert das und was kann ich tun, um es zu stoppen? Wie ich es verstehe, ist dies keine Situation, in der CSRF von wesentlicher Bedeutung ist, da es keine Sitzung zur Entführung gibt, aber ich bin immer noch vorsichtig, sie abzuschalten.

Chrome-Version: 31.0.1650.63

Safari Version: 7.0.1

Antwort

3

Es scheint dies die berühmte Problem 'Cookies von Drittanbietern' ist. Safari deaktiviert sie standardmäßig.

Mehr: How do Third-Party "tracking cookies" work?

+0

Danke für die Information. Ich verstehe immer noch nicht, was die Lösung ist. – guyaloni

+0

@guyaloni, müssen Sie entweder ohne Cookies arbeiten, oder bringen Sie den Benutzer auf Ihre Website und setzen Sie einen Cookie dort – djb

+0

Nun, http://Stackoverflow.com/a/8175979/1039488 löste mich das Problem! – guyaloni

Verwandte Themen