プロが教える店舗&オフィスのセキュリティ対策術

ruby on railsでの画面間のパラメータ受け渡し方法についての
質問です。

入力画面1→入力画面2→確認画面→(登録)
のような画面遷移を行う場合、入力画面1、2の内容を
登録処理で使用するにはどのようにしたらよいでしょうか?
1.Sessionに格納する。
2.Hiddenフィールドを使用して、画面間で、受け渡しをする。
3.その他、良い方法があれば教えてください。

A 回答 (1件)

>>のような画面遷移を行う場合、入力画面1、2の内容を


>>登録処理で使用するにはどのようにしたらよいでしょうか?
>>1.Sessionに格納する。
>>2.Hiddenフィールドを使用して、画面間で、受け渡しをする。

一般論としては、Hiddenフィールドを使うと、ブラウザ側でデータが見えますし、そのデータの書き換えも自由にできます。例えば、液晶TVの単価が10万円というデータをいれていたら、それを1万円に書き換えることも可能です。なので、重要なデータはHiddenを使うのはまずいでしょう。
でも、Sessionですと、サーバ側で保持するので、そういう心配はありません。
なので、rails 1.2では、Sessionで良いと思います。

ただし、ruby on rails 2.0からは、すべてのセッションデータがクッキーに収容されるように仕様が変更されました。なので、基本的には4KB弱しか入らないと考えないといけません。クッキーは、Hiddenフィールドと同様な危険性があるので、まずいですね。でも、セッションの保存方法を変更することも可能なようです。

>>3.その他、良い方法があれば教えてください。

railsには、DRbStore,MemCacheStore,SqlSessionStoreなど、いくつか標準・非標準のセッション情報保存方法があるようです。

なお、「Railsレシピブック183技」からの情報で、実際に試したわけではありません。よろしく。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
環境は、ruby on rails 2.0を使用していますので、session、hiddenともに危険ということですね・・・
「Railsレシピブック183技」を拝見しましたが、
Sessionには、ユーザIDと、flashデータのみを使用することを推奨するとありましたので、
Hiddenを使用して、重要データは、格納しないようにして対応したいと思います。
例えば、液晶TVというデータのみ格納し、単価は、遷移先ページでデータベースから取り直す形にしようと思います。

お礼日時:2008/08/07 09:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!