hiddenのあまりにも馬鹿げた使い方
これは面白い
yohei-y:weblog: ステートレスとは何か
では、ステートレスな場合はどうなのか。
引用元には明記されていないが、客の延々とした繰り返し部分は、ホストから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は危険脳」などと某方面から突っ込みがありそうだが、使い方によっては危険になること、そして、その危険な使い方というのは、商品の単価を客に復唱させるような愚かな行為であることは、覚えておかなければならない。