6

HTTPS ページでのみ設定する代わりに、HTTP でセッションを設定する必要がないシナリオがあります。現時点での問題は、HTTPS と HTTP の間でセッション文字列を共有していることです。

つまり、HTTP ページにアクセスすると、セッション文字列 (セキュリティで保護されていない) が割り当てられます。HTTPS ページの 1 つにアクセスすると、同じセッション文字列が使用されます。それらは両方で共有されます。暗号化されていない接続でセッション文字列をスヌープできるようにしたくありません。

誰かが私にこのようなことを達成する方法についての読書やドコを教えてもらえますか? どこを見ても - 私は少し困惑しています。あまり見つからない

4

2 に答える 2

10

Rails のセッション データはデフォルトで Cookie に保存されますが、SSL のみの Cookie を使用したいようですね。

更新:ファイルに追加secure: trueしてみてくださいconfig/initializers/session_store.rb、つまり

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
YourApp::Application.config.session_store :cookie_store, { key: '_xxxx_session', secure: secure_option }

Cookie を生成するとき、Devise は rails 設定を使用する必要があります


元の答え

ファイルには、config/initializers/devise.rb次のような行があるはずです

 # :secure => true in order to force SSL only cookies.

config.rememberable_options に追加して Rails を再起動してみてください - 注: 開発モードでは、これは望んでいないことですが、実行できる可能性があります。

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
config.rememberable_options = { :secure => secure_option }

以下も参照してください。

于 2013-06-24T23:55:54.007 に答える
-1

セッション Cookie を変更する場合は、ワーデン コールバックで変更する必要があります。このスレッドこのブログ投稿を参照してください。

または、別の Cookieを使用することもできます。RailsCastはこちら

于 2013-06-25T00:43:00.020 に答える