hiddenフィールドとセッション変数

HTMLタグのhiddenフィールドや、セッション変数はwebページ間のデータの受け渡しに便利です。

どちらを使うかはそのwebサービスの特徴や開発者の好みによって違いますが、それぞれ長所と短所があるので紹介します。

まず、hiddenについて。

HTMLのタグに埋め込むだけでブラウザからは見えないのでとても手軽で便利ではありますが、大きな危険性を孕んでいます。 見えてはいませんが他のデータ同様、wwwブラウザに送信されています。wwwブラウザに送信されたデータはユーザによって簡単に閲覧、改ざんされてしまいます。基本的に見られたくないからhiddenにしているのに…

一方でセッション変数について。

そもそもセッション変数とは何か?

多くのWebアプリケーション実行環境は,複数Webページ間の連続性を維持するためのセッションメカニズムを備えています。そこではそれぞれのセッションごとに専用の記憶領域が提供され、セッションが続いている限りデータを保持できるようになっています。このような記憶領域のことを「セッション変数」と呼びます。   セッション変数に設定されたデータはサーバ側で保持され,WWWブラウザに流出することがないため,安全にWebページ間のデータ受け渡しを行うことができるのです。

ではセッション変数に短所はないのでしょうか? 一つ挙げておきたいのは複数のタブで処理が行われた時のセッション変数の変化です。例えば、あるwebサービスを一人のユーザが複数のウインドウで使っているとします。この時にセッション変数はどう変化するのでしょうか?タブ1で登録したデータがタブ2で反映されないとなるとセッション変数の受け渡しがうまくいってないということになります。 このあたりはセッション変数の挙動をうまく設定してやればよいのですがちょっとめんどくさそう…

と、どっちを使うのか色々考えながら決めないといけなさそうですね。