0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

cookiestoreとは

Posted at

デフォルトのセッションストレージ

RailsはデフォルトのセッションストレージとしてActionDispatch::Session::CookieStoreを用います。

デフォルトでcookieを使うのようになっているのか

cookiestoreの特徴

セッションハッシュ使ってcookieを使っている

RailsのCookieStoreはクライアント側のcookieにセッションハッシュを保存します。サーバーはこのセッションハッシュをcookieから取得することで、セッションIDを必要としなくなります。こうすることで、アプリケーションのスピードは大幅に向上しますが、このストレージオプションについては賛否両論があるため、セキュリティ上の意味やストレージでの制約について以下の点を十分考えておかなければなりません。

容量

cookieの上限は4KBです。cookieはセッションに関連するデータを保存する目的にのみお使いください。

目的外の物は保存しない

Cookieが盗聴される可能性

cookieはクライアント側に保存されます。クライアントでは、失効したcookieにも内容が残っていることがあります。また、クライアントのcookieが他のコンピュータにコピーされる可能性もあります。セキュリティ上重要なデータをcookieに保存することは避けてください
...
セッションcookieが自分自身を無効にすることはないので、悪用目的で使い回される可能性もあります。保存済みのタイムスタンプを利用して古いセッションcookieをアプリケーションで失効させるとよいでしょう。

一時的な情報だけcookieを使う

cookieは本質的に一時的な情報です。サーバーはcookieに期限を設定できますが、期限が切れる前にcookieやcookieの内容がクライアント側で削除される可能性があります。恒常性の高いデータは、すべてサーバー側で永続化してください。

デフォルトで暗号化されてる

Railsはcookieをデフォルトで暗号化します。クライアントは暗号を解読しないかぎりcookieの内容を読み取ることも編集することもできません。秘密情報を適切に扱っていれば、cookieのセキュリティは一般的に保たれていると考えてよいでしょう。

CookieStoreは、セッションデータの保管場所を暗号化して安全にするためにencrypted cookie jarを利用します。これにより、cookieベースのセッションの内容の一貫性と機密性を同時に保ちます。暗号化鍵は、signed cookieに用いられる検証鍵と同様に、secret_key_base設定値から導出されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?