Railsのセッション管理


Ruby on Railsでのセッションの管理方法を3つ紹介します。

🐹 Cookieでの保存(CookieStore、デフォルト)

セッションの中身を_application_sessionというCookieに保存します。Rails 4以降は暗号化されていますが、クライアント側で操作できてしまうので、過去の状態に戻す等の不正が考えられます。

🚜 DBへの保存

activerecord-session_store」などのGemを使うとDBにセッションの中身を保存できます。サーバ側に保存することでCookieStoreの問題を解消できますが、DBへの負荷が上がるデメリットがあります。

🍣 メモリへの保存

Dalli」などのGemを使うとmemcachedやRedisなどにセッションを保存できます。DBよりも高速に処理できますが、複数サーバの環境では一ヵ所のmemcachedやRedisを共有する必要があります。

🐯 補足:セッションの破棄

次のコマンドを実行すればセッションを破棄できます。

reset_session

🎂 参考リンク

Rails セキュリティガイド | Rails ガイド

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)