23
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails で認証後にセッションIDをリセットする

Posted at

reset_session

Ruby on Rails Security Guide では Session Fixation - Countermeasures の項目で紹介されています。

調べながら気になった記事

またセッション ID はログイン後に reset_session でリセットすることが望ましいそうです。

認証後にリセットする方法のサンプル

そもそも認証が最初の画面なのであれば(ログイン画面が最初とか) SessionController#create の before で reset_session してしまっても良いと思います。

ただ、認証前の画面があった上で、途中から認証するような場合(認証前から買い物カートには追加できて、支払い前にログインを求めるような時)には、既にセッションに入っている情報を引き継ぐ必要があります。

リンク先そのままで恐縮ですが、以下のように一度複製して、リセットをするという方法になりそうです。

# 認証成功後
temp_sess = session.dup
reset_session
session.replace(temp_sess)
23
19
3

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
23
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?