Ruby on Rails で Cookie に HttpOnly フラグを設定するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/72242

  •  09-06-2019
  •  | 
  •  

質問

ページ Cookie を保護する:HTTPのみ HttpOnly Cookie を作成することが良いアイデアである理由を説明しています。

Ruby on Rails でこのプロパティを設定するにはどうすればよいですか?

役に立ちましたか?

解決

Cookie の設定に使用されるハッシュに「http_only」オプションを設定します。

例えば

cookies["user_name"] = { :value => "david", :httponly => true }

または、Rails 2 では次のようになります。

例えば

cookies["user_name"] = { :value => "david", :http_only => true }

他のヒント

ローリーの答え:

オプションの名前が から変更されたことに注意してください。 :http_only:httponly (アンダースコアなし) ある時点で。

actionpack 3.0.0、つまり Ruby on Rails 3 では、すべての参照は :http_only なくなってしまった。

それはしばらく私を驚かせました。

の説明に従って、:http_only を true に設定するだけです。 変更履歴.

この行を含む config/session_store.rb というファイルがある場合 (Rails 3 以降)、すでに自動的に設定されています。config/initializers/session_store.rb:

# Be sure to restart your server when you modify this file.
Rails.application.config.session_store :cookie_store, key: "_my_application_session"

また、Rails では次のキーを設定できます。

:期限切れ - この Cookie の有効期限が切れる時刻 (Time オブジェクトとして)。

:安全な - この Cookie が HTTPS サーバーにのみ送信されるかどうか。デフォルトは false です。

また、Rails 2.2 に含まれるパッチも作成しました。これは、CookieStore セッションをデフォルトで http_only に設定します。

残念ながら、セッション Cookie はデフォルトでは依然として通常の Cookie です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top