2013年2月6日水曜日

[HTML] input要素のdisabled属性を考える

カンファレンスとかでセッションの一覧から参加したいセッションを選ぶ、なんて形式のがたまにあります。
会場の広さなどから1セッションあたりの参加人数が限定されていて、人気のあるセッションなんかは割とあっさり埋まりがちです。
満席になったセッションは大体の場合、表題にあるinput要素にdisabled属性が設定され、チェックがつけられなくなることでそのセッションには登録できなくなります。

普通であれば「disabled属性のついた要素の値はフォームから送信されない」ので、満席のセッションに登録できないようにするには十分なように思われます。

でも

このdisabled属性、ChromeのDevtools等のDOM要素がいじれる系ツールが使えればあっさりと消去することができちゃいます。
するとどうでしょう、本来なら「満席で登録できないセッション」を選択したデータがフォームからサーバに送られてしまうのです。。。

こういうフォームを見つけると好奇心から満席のセッションが登録できるか試すんですが、今のところほとんど登録できちゃってます…(取り消しますけど)

うん

サーバサイドでもちゃんとデータの妥当性?のチェックはしましょうねというおはなし。

(まー対応するコストと見合わないのかなーとか思ったり。formの要素をごまかして送るなんて他にもいくらでも方法あるだろうし。
Webがオープンな物であることには大賛成だけど、デバッグツールでなんでもかんでも見れていじれちゃうのってどうなんだろ?とか最近ちょっとだけ考えてる。
将来「デバッグツール拒否」フラグみたいな物ができちゃったりしないかなーといらぬ心配をしております。HTML/JS/CSSは誰からでも見れるものという常識が変わる日がいつか来るのだろうか)

0 件のコメント:

コメントを投稿