hiddenのあまりにも馬鹿げた使い方

これは面白い
yohei-y:weblog: ステートレスとは何か

では、ステートレスな場合はどうなのか。

  • 客: こんにちは
  • 店員: いらっしゃいませ。○○バーガーへようこそ
  • 客: ハンバーガーセットをお願いします
  • 店員: サイドメニューは何になさいますか?
  • 客: ハンバーガーセットをポテトでお願いします
  • 店員: ドリンクは何になさいますか?
  • 客: ハンバーガーセットをポテトとジンジャーエールでお願いします
  • 店員: +50円でドリンクをLサイズにできますがいかがですか?
  • 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします
  • 店員: 以上でよろしいですか?
  • 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします。以上
  • 店員: かしこまりました

引用元には明記されていないが、客の延々とした繰り返し部分は、ホストからhiddenフィールドで渡されてきたものを返しているのだろう。すると、いわゆる「hiddenフィールドの『改ざん』」という奴に想いが至るのは自然である*1
そこで、単価をhiddenフィールドで渡すという愚行をやってみよう。但し、少し簡略化する。

  • 客: こんにちは
  • 店員: いらっしゃいませ。○○バーガーへようこそ
  • 客: ハンバーガーを1個お願いします
  • 店員: ハンバーガー(単価250円)を1個でございますね。お飲み物はいかがですか?
  • 客: ハンバーガー(単価250円)を1個とコーラを1個お願いします。
  • 店員: ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個でございますね。他にはよろしいですか?
  • 客: ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個、会計をお願いします。
  • 店員: かしこまりました。ご注文を繰り返します。ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個、お間違えはございませんか?
  • 客: ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個、それでいいです。
  • 店員: かしこまりました。お会計は380円でございます。

こういうECサイトは現実にあるのである。それも、5年前とかの話ではない。現役バリバリのECサイトというかbモp■・*2においてである。
このようなサイトで、「hiddenフィールドの『改ざん』」は以下のようにやる。

  • 客: こんにちは
  • 店員: いらっしゃいませ。○○バーガーへようこそ
  • 客: ハンバーガーを1個お願いします
  • 店員: ハンバーガー(単価250円)を1個でございますね。お飲み物はいかがですか?
  • 客: ハンバーガー(単価250円)を1個とコーラを1個お願いします。
  • 店員: ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個でございますね。他にはよろしいですか?
  • 客: ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個、会計をお願いします。
  • 店員: かしこまりました。ご注文を繰り返します。ハンバーガー(単価250円)を1個とコーラ(単価130円)を1個、お間違えはございませんか?
  • 客: ハンバーガー(単価1円)を1個とコーラ(単価1円)を1個、それでいいです。
  • 店員: かしこまりました。お会計は2円でございます。

簡単である。あまりに簡単なので、『改ざん』というのもおこがましくて、「hiddenフィールドの書き換え」くらいにとどめたいくらいだ。
このように書いてみると、hiddenフィールドと言えども、「ユーザからの入力」に過ぎないことが良く分かるだろう。「hiddenは危険だから気をつけろ」などと書くと「hiddenは危険脳」などと某方面から突っ込みがありそうだが、使い方によっては危険になること、そして、その危険な使い方というのは、商品の単価を客に復唱させるような愚かな行為であることは、覚えておかなければならない。

*1:あるいは職業病である

*2:守秘義務フィルターにより激しく文字化けしている