タグ

RubyとCookieに関するYassLabのブックマーク (3)

  • Rails 6.1と7.2間でCookieを共有する際の暗号化方式の違いとその対処法

    はじめに実務でRailsアプリケーション(Rails 6.1)と新規に開発したRailsアプリケーション(Rails 7.2)間でSSOを実現するための実装を行う機会があり、Cognitoから発行されたトークンをCookieに保存して、サブドメイン間で共有する際に、それぞれのRailsのバージョンによる暗号方式の違いでハマったので、その内容と対処法についてまとめます。 Railsにおける署名付きCookieと暗号化Cookieの仕組みまず、RailsがどのようにしてCookieを扱っているのかを調べていきます。Railsでは、通常のCookieに加えて、署名付きCookie、暗号化Cookieという3つの異なる方式でCookieを扱うことができます。 通常のCookie通常のCookieは、Railscookies[:key] = valueのように書くことで設定できます。このCooki

    Rails 6.1と7.2間でCookieを共有する際の暗号化方式の違いとその対処法
    YassLab
    YassLab 2025/11/09
    “まず、RailsがどのようにしてCookieを扱っているのかを調べていきます。Railsでは、通常のCookieに加えて、署名付きCookie、暗号化Cookieという3つの異なる方式でCookieを扱うことができます。”
  • ソースコードを読んで理解するRuby on Rails のセッション管理

    この記事は Ruby on Rails のセッション管理について、ソースコードを辿りながらその動作を説明したものです。ネタとしてはn番煎じではありますが Ruby on Rails でWebアプリケーション開発を行っている Rails のセッションは雰囲気で使っている。詳しくことは分かっていない そろそろ Rails のコードを読んでみたいがやり方がわからない or 他の人の読み方が知りたい という方にはご活用いただける内容です。 Bookにもまとめています 長い記事になるので Zenの Book にもまとめました。 内容は同じですので、お好きな方をご利用ください。 全体をざっと眺めたい方にはこの記事を、もう少し詳しく読みたい方にはBookがおすすめです。 時間がない方向けのまとめ 記事はとても長い内容になっております。お忙しい方や内容をざっと確認したい方は、以下だけ読んでいただければ記

    ソースコードを読んで理解するRuby on Rails のセッション管理
    YassLab
    YassLab 2025/01/23
    "Ruby on Rails ではどのようにセッションを実現しているかというと、基本的には「IDベースのセッション管理」を採用しています。具体的な内容についてはRailsガイドの「ActionControllerの概要 5.セッション」を参照してください"
  • クッキーにメールアドレスを保存することはセキュリティの観点から問題ないと思いますか? (クッキーは暗号化されており、httpOnly、secureを適切に設定し、10分程度の有効期限にする場合) | mond

    クッキーにメールアドレスを保存することはセキュリティの観点から問題ないと思いますか? (クッキーは暗号化されており、httpOnly、secureを適切に設定し、10分程度の有効期限にする場合) セッション管理をCookieStoreと呼ばれる方式にすると、まさにそういう状況になります。CookieStoreはセッションの中身を暗号化してクッキーそのものに保存する方式であり、たとえばRuby on RailsだとデフォルトのセッションストアがCookieStoreとなります。この状態で、セッション変数にメールアドレスを保存すると、結果としてクッキーにメールアドレスを暗号化して保存したことになります。 CookieStore方式の問題点は、中身が暗号化されていても、クッキーが盗まれたらそれをブラウザに゙セットすることでセッションが再開でき、保存されているメールアドレス等が画面表示されることで

    クッキーにメールアドレスを保存することはセキュリティの観点から問題ないと思いますか? (クッキーは暗号化されており、httpOnly、secureを適切に設定し、10分程度の有効期限にする場合) | mond
    YassLab
    YassLab 2024/09/22
    “問題は、暗号化による保護には実装上の脆弱性が入りやすいことで、可能であればRuby on RailsのCooiteStoreなど実績のある実装を使いたいところです。”
  • 1