Nous avons une application Rails qui communique avec une application iPhone basée sur PhoneGap. Nous sommes en train de mettre à jour l'application Rails de Rails 2.3.5 vers 3. En raison de certains problèmes de compatibilité de PhoneGap avec les cookies de Rails, l'application Rails (pré-mise à niveau) a été configurée avec :cookie_only
sur false:Désactivation: cookie_only dans le magasin de sessions dans Rails 3?
ActionController::Base.session = {
:key => '_our_key',
:secret => 'ourreallyreallylongsecret',
:cookie_only => false
}
Cette configuration a été traduit à ce qui suit pour Rails 3:
OurApp::Application.config.session_store :cookie_store, :key => '_our_key'
OurApp::Application.config.secret_token = 'ourreallyreallylongsecret'
le problème est, je ne peux pas comprendre comment utiliser l'option :cookie_only
dans Rails 3. maintenant, je me rends compte que la mise :cookie_only
false est une très mauvaise idée et conduit à de mauvais exploits de fixation de session. Nous prévoyons certainement de régler cela à l'avenir. Cependant, l'application iPhone existante repose sur ce comportement afin de fonctionner du tout. Je dois donc pouvoir faire fonctionner l'application iPhone à court terme pendant que nous révisons la session de l'application iPhone.
regardant la source Rails pour CookieStore
, on dirait qu'ils ne vraiment veulent pas que nous soyons en mesure d'utiliser cette option plus:
def initialize(app, options = {})
super(app, options.merge!(:cookie_only => true))
freeze
end
singe Nous patché les sources Rails de fusion dans :cookie_only => false
, qui n'a pas fonctionné. Nous sommes même allés jusqu'à définir directement @cookie_only = false
dans la méthode initilize
de AbstractStore
, mais cela a été simplement ignoré. Il semble que la mise en œuvre CookieStore
ne honore plus @cookie_only
.
N'y a-t-il vraiment aucun moyen d'utiliser cette fonctionnalité dans Rails 3? Toute aide serait grandement appréciée.
et me voilà tout prêt à sonner avec une description des attaques de fixation de session. bonne chance mec, désolé je ne peux pas aider –