1

この質問によると、セッションはユーザーが編集できます。しかし、この回答は、ユーザー ID を保存しても安全であることを示唆しています。

Railsドキュメントから

データの整合性を確保するために、Cookie にはメッセージ ダイジェストが含まれています。ユーザーは、ハッシュに含まれる秘密鍵を知らずに自分の user_id を変更することはできません。

ページに<%= debug(session) %>埋め込まれ、Chrome の開発者ツールにセッション値があるため、セッション cookie にメッセージ ダイジェストが見つかりません。ユーザー A としてログインし、ユーザー B としてログインすると、セッション Cookie は同じ例外user_id値のままです。

では、メッセージ ダイジェストはどこにありますか、それとも設定が必要ですか? 自動生成された secret_token は にありconfig/initializers/secret_token.rbます。サーバーのメモリに保存され、リクエストごとにセッション値をハッシュしますか?

4

1 に答える 1

1

メッセージ ダイジェストは、Cookie 値の一部です。セッションで取得するデータの一部ではありません。

Chrome で生の Cookie 値を調べればわかります。ダイジェストは「--」でペイロードから分離されています。

于 2012-12-09T16:22:23.627 に答える