藤岡です。

ポリシーの話は保留しておくとして、

> |Yukihiro Matsumoto <matz / ruby-lang.org>さん wrote:
> |> また、大きな変更とおっしゃいますが、外側からセッションIDを注
> |> 入するような(私の目から見たら不正な)ことをしなければ、問題は
> |> 発生しないはずです。
> |
> |一般論ですが、セッションの維持にはセッションクッキー(ブラウザを
> |閉じれば消去されるクッキー)がよく使われます。その場合、サーバ側で
> |有効期限を5時間とかに設定して、それより古いサーバ側データは削除
> |することもあるかと思います。いつまでも残しておくのは危険ですし。
> |そんな時、ブラウザをあけっぱなしにして(タブブラウザだとよく
> |ありますよね)、しばらくたってからサイトにアクセスすると、上記の
> |ような状態が発生するはずです。
> |
> |なので、「不正なことをしなければ問題は発生しないはず」というのは
> |ちょっと実感にそぐわないのですが、セッションクッキーは使わないとか
> |だったりするのでしょうか? それとも私が状況を勘違いしてます?
> 
> そういやそうですね。「問題が発生しないはず」は言い過ぎですね。
> あっさり撤回します。
> 
やっとわかったので、現状の問題を報告いたします。
●クッキーに保存されるセッションIDがディレクトリまでしか
ほぞんしていないので、同じディレクトリにある2つのファイルが
セッションを共有してしまう。
                      "path" => if option['session_path'] then
                                  option['session_path']
                                elsif ENV["SCRIPT_NAME"] then
#                                 File::dirname(ENV["SCRIPT_NAME"])

                                  ENV["SCRIPT_NAME"]
                                else
                                  ""
このようにして、ファイル名まで保存すると正しく動作しました。
実証サンプルが欲しければ提示いたします。
prefixを複数使い分けると正しく動作しないのは
手元のプログラムのバグでした。そもそも使い分けてはいけないようで。
-- 
Takeyuki Fujioka
Fingerprint = 8530 5FC7 F678 4B14 8886  2B76 7550 F1E9 336A 79F1