目次
<input type="hidden">とは
Webフォームでは、ユーザーに見せずにデータを送信するために<input type="hidden">が使われることがあります。hiddenは画面には表示されませんが、フォーム送信時には他の入力項目と同じようにサーバーへ送信されます。
例えば次のようなコードです。
<input type="hidden" name="form_id" value="contact01">
このように、フォーム識別などの補助的な情報を送信する目的で使われます。
ただし、hiddenは「画面に表示されないだけ」であり、特別に安全な仕組みではありません。ブラウザの検証ツール(DevTools)を使えば、誰でもhidden項目を確認することができます。そのためシステムテストでは、hiddenにどのようなデータが入っているかを必ず確認する必要があります。
① hiddenの基本的な確認方法
まず基本的な確認方法として、ブラウザの検証ツールを使います。フォーム画面で右クリックして「検証」を開き、HTML構造の中からtype="hidden"の入力項目を探します。そこにどのようなデータが設定されているかを確認します。
例えば次のような内容であれば問題ありません。
- フォーム識別ID
- 画面遷移の状態管理
- CSRFトークン
- 一時的なフラグ情報
これらは補助的な情報であり、サーバー側でも検証されることが多いため、hiddenで送信されることが一般的です。
② hiddenに入れてはいけない情報
一方で、hiddenに入れてはいけない情報もあります。特に注意すべきなのは「改ざんされると困るデータ」です。例えば次のような情報です。
- 商品価格
- 割引率
- ポイント数
- 決済金額
- ユーザー権限
hiddenの値は検証ツールで簡単に変更できるため、これらのデータをクライアント側に置いてしまうと不正操作につながる可能性があります。
③ hiddenの値を書き換えてテストする
テストでは、実際にhiddenの値を書き換えてフォーム送信してみることも重要です。
例えば価格がhiddenで送信されている場合、検証ツールで値を変更して送信してみます。
<input type="hidden" name="price" value="10000">
検証ツールで
value="10000" → value="1"
のように変更して送信し、処理結果を確認します。もし変更した値がそのまま処理に使われてしまう場合は、サーバー側の設計に問題があります。本来、価格や権限などの重要なデータはサーバー側で管理・再計算される設計になっている必要があります。
まとめ
システムテストでは、<input type="hidden">について次のポイントを確認します。
- 検証ツールでhidden項目の内容を確認する
- 値を書き換えて送信できるか試す
- 価格や権限など重要なデータが入っていないか確認する
hiddenは「目に見えないだけの入力フィールド」であり、セキュリティが保証される仕組みではありません。テスト時にはhidden項目の内容を確認し、重要なデータがクライアント側に置かれていないかをチェックすることが重要です。