Wir haben eine Rails App, die mit einer PhoneGap-basierten iPhone App kommuniziert. Wir sind dabei, die Rails-App von Rails 2.3.5 auf 3 zu aktualisieren. Aufgrund einiger Probleme, die PhoneGap mit den Cookies von Rails spielen lassen, wurde die Rails-App (vor dem Upgrade) mit :cookie_only
auf false konfiguriert:Deaktivierung: cookie_only im Sitzungsspeicher in Rails 3?
ActionController::Base.session = {
:key => '_our_key',
:secret => 'ourreallyreallylongsecret',
:cookie_only => false
}
Diese Konfiguration der folgenden für Rails übersetzt wurde 3:
OurApp::Application.config.session_store :cookie_store, :key => '_our_key'
OurApp::Application.config.secret_token = 'ourreallyreallylongsecret'
Das Problem ist, ich kann nicht herausfinden, wie die :cookie_only
Option verwenden nun in Rails 3, merke ich, dass Einstellung :cookie_only
zu falsch ist eine wirklich schlechte Idee und führt zu fiesen Session Fixation Exploits. Wir planen natürlich, dies in Zukunft zu beheben. Die vorhandene iPhone-App verlässt sich jedoch auf dieses Verhalten, um überhaupt funktionieren zu können. Also muss ich in der Lage sein, die iPhone-App für den kurzen Lauf zu bekommen, während wir die Session-Sachen der iPhone-App überholen.
an der Rails Quelle der Suche nach CookieStore
, sieht es aus wie sie uns wirklich mehr in der Lage sein nicht wollen, um diese Option zu verwenden:
def initialize(app, options = {})
super(app, options.merge!(:cookie_only => true))
freeze
end
Wir Affe die Schienen Quelle in :cookie_only => false
, fusionieren gepatcht die funktioniert nicht. Wir gingen sogar soweit, @cookie_only = false
in AbstractStore
's initilize
Methode direkt zu setzen, aber es wurde gerade ignoriert. Es scheint, als ob die CookieStore
Implementierung @cookie_only
nicht mehr honoriert.
Gibt es überhaupt keine Möglichkeit, diese Funktionalität in Rails 3 zu verwenden? Jede Hilfe wäre sehr geschätzt.
und hier war ich alle bereit, mit einer Beschreibung der Session-Fixation-Attacken läuten. Viel Glück Kumpel, tut mir leid, ich kann nicht helfen –