From: "H.Shimura" Date: 2004-12-09T15:04:04+09:00 Subject: [ruby-list:40383] Re: 1.8のcgi/session.rb 志村 と申します 議論中の横入り失礼します。 普段 Ruby は使っておりますが、Webアプリケーションには PHP を使用しています。 今回の、 Re: 1.8のcgi/session.rb の流れ、始めの方余り理解できずに読み飛ばしていたのですが # 普段 Ruby の CGIライブラリを使っていないもので。失礼します。 まつもとさんの整理された動きについては意見があります。 「存在しない sessionn_id が指定されるのは危険です」 In message "[ruby-list:40381] Re: 1.8のcgi/session.rb", <41B7E1A9.1050005@ftserve.net>, Takeyuki Fujioka wrote... >> * 存在しないsession_idを外から指定されるのは危険ではないか >> * では、例外を発生させよう >> * 例外が発生するとrescueする必要がある(が、めんどくさい) >> * じゃあ、例外の発生はやめよう >> * 最初に戻る >> >> ここで論じるべきなのは「存在しないsession_idが指定されること >> が、CGIプログラムの作成者にrescueを要求するほど危険なことか、 >> そうでないか」ではないでしょうか。 >> >> 「そんなの全然危険でない」という意見が出ない限りループするだ >> けです。 >> >では、完全にわたしだけのケースの意見ですが、 >「そんなの全然危険でない」に一票です。 僕は、「危険」の方に一票投じます。 そのままエラーが発生して落ちてしまっても構わないくらいですが、 「エラーで落ちる」といっても「適切な落ち方」といものが必要なこともあり、 そういう場合に、rescue で拾ってやることが出来るというのも便利だと思います。 「危険」性について。 これは主にセッションの持続時間とのからみにもなります。 PHPのセッション管理では、セッション発行後適当な機会にセッションIDは破棄され、 以後そのセッションは無効になります。 (セッションIDつき URL を保存、メールで送るなどされても、「その内」無効になる) それが、無効になった筈の消去されたセッションIDが勝手に復活してしまうのは、 明示的に「.exist_session_id?」で調べなければならないというのは不便です。 不便とは言っても、存在しないセッションIDをして去れた場合について、 1. 原則有効、場合によっては(必ず?) .exist_session_id? でチェック 1. 原則無効、場合によっては rescue で救済 のどちらが良いかという比較の問題だとは承知していますが、 出来れば安全側に倒してある方が安心です。 Ruby の CGIライブラリでのセッションの無効化の手続きを知らずに発言しています。 的はずれな意見でしたら無視して下さい。 ---------------------------------------+---------+---------+以上 2004/12/9 志村弘之 mailto: shimurahiroyuki@obun.co.jp