お問合せフォーム

管理者

|

2023年02月14日

入力フォーム → 確認ページ → 送信完了ページ

*入力フォーム・確認ページ共通

ワンタイムトークンの生成

例)

  1. ランダムな文字列生成し、セッション(A)に保管。
  2. 保管した文字列を半分にして1つはinput type=hidden(B)にてPOSTする。
  3. もう1つはセッション(C)に保管する。

ページが移動したときにA=B+CならばTRUE、それ以外はFALSE。

ページ移動ごとに新しいトークンを生成し、1に戻る。

  • 入力する内容によってinput type属性を選択する
  • 必須項目は入力する前でもわかりやすくする(送信ボタンを押してから「必須項目です」は言わない)
  • チェックボックスもしくはラジオボタンの数が5つ以上ある場合は、selectボックスを利用する(デザインによっては5つ以上でも問題はない)
  • ファイル・画像などをアップロードする場合は、選択した後に何のファイルがアップロードされるかを可視化する(FileReaderなどを使いファイルセレクトイベントにて情報を取得し、画面へ表示する)
  • テキストエリアは、入力した内容が全て見えるように変化させる(テキストエリアの高さ固定は避けるべき)
  • トークンをセットする
  • 確認ページへ移動する前に入力内容を検証(バリデーション)し、ミスがある場合は、確認ページへは移動させないようにする
  • 入力ページからのトークンの整合性を確認し、FALSEならば入力フォームへ移動する
  • 新しいトークンをセットする
  • 入力内容の表示は入力フォームで入力した順番に表示する
  • 入力フォームへ戻るボタンを付ける
  • 入力内容はセッションに保存し、入力フォームへ戻った場合は、そのセッション内容を入力フォームへセットする
  • 新しいトークンをセットする
  • 確認ページからのトークンの整合性を確認し、FALSEならば入力フォームへ移動する
  • 全てのセッションを破棄する
  • 送信が完了した旨を正確に伝えへその後の対応も記載する
  • このページから次の行動を促すボタンをわかりやすく表示する
  • ページをリロードすると入力フォームへ移動する

SMTPサーバを使ったメール送信プログラムがスパムになりにくい。

もちろんDNSレコード設定でSPFレコードがきちんと評価されていること

例)PHPMailerなど