PHP

PHP

PHP脆弱性対応:フォームのセキュリティー対策 入力値の妥当性チェック

前回のXSS脆弱性対策(セキュリティー対策)の続きで、

今回は入力値の妥当性チェックについてです。

 

しっかりとチェック処理を入れておかないと、

スパムメールの踏み台にされたり、フィッシング詐欺メールの送信処理に使われてしまいます。

 

それで、

妥当性チェックといっても、

チェックすることは多すぎて大変です!!

 

例えば、

メールアドレスが正しく入力されているかをチェックする場合には、

という関数を作成して、

とすればチェックできます。

 

ただし、

メールアドレスのチェックは本来はこれだけでは不十分で、

完全なチェックコードを書くのは相当な作業量になるようです。

 

また、

電話番号だと、

とします。

 

これは、

「0」から始まり、9桁もしくは10桁で入力されていることを確認しています。

 

これは

数字のみ入力を許可する場合の処理で、

例えば「-」付きの電話番号をチェックする場合には、

となります。

これはファックス番号もほとんど同じです。

 

因みに携帯電話だと、

で対応可能だと思います。

 

その他にも、

名前やふりがなに全角以外の文字が入っていないかは、

という関数で対応しています。

mb_convert_kanaでの変換前の文字列と変換後の文字列とで差異が出れば、

全角以外が混ざっていると判定しています。

 

その他にも、

例えば性別を問うラジオボタンを設けた場合、

性別は「男」か「女」だけなので、

それ以外の値が送られてきていないか?

 

また、

郵便番号は「3桁-4桁」で入力されているか?

 

数字のみのを入力する項目は半角数字で入力されているか?
※is_numeric()関数でのチェックだとまずいらしいので、正規表現でチェックして下さい。

 

年齢であれば3桁半角英数のみで入力されているか?
※「preg_match("/^\d{1,3}$/", $age)」とすればOK!!

 

入力された日付けは妥当か?
※日付けはcheckdate()関数を使えば便利ですね!!

 

などのチェックが必要です。

 

それと、

テキストボックスの項目には必ず「maxlength="xx"」を設定しておき、

設定したmaxlength以上の文字数のテキストが送られてきていないか?

のチェックも必要です。
※「maxlength」の値は、ブラウザ上で簡単に改変できます。

 

取り敢えず、

妥当性チェックといってもチェックすることは山程あり、

結構面倒な作業ではあります。

関連記事

  1. PHP

    PHP

    mb_strlen()関数の注意点!!

    PHPでバイト数ではなく文字数を取得したい場合、mb_strlen…

  2. データベース

    PHP

    phpPgAdminをインストール

    phpPgAdminのインストール方法についてのメモ書きです。&n…

  3. PHP

    PHP

    mb_strimwidth()が便利だと思った理由

    最近便利だと思った関数に、mb_strimwidth()があります…

  4. PHP

    PHP

    PHP脆弱性対応 フォームの改行コード、復帰コードの取り扱い

    サイト構築時、大概の場合お問合せフォームを設置すると思いますが、…

  5. PHP

    PHP

    PHPで「Warning: A non-numeric value encountered」というエ…

    かなり前に弊社で組んだシステムをPHP7.1の環境に移行しているのです…

  6. PHP

    PHP

    PHPExcel エクセルをダウンロード

    PHPExcelを使ってエクセルファイルを出力する場合、ファイルを…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. PHP
  2. PHP
  3. 風邪予防
  4. WordPress(WP)
  5. PHP
  6. 宅建
  7. アンチWP
  8. 日本語ドメイン
  9. WordPress(WP)
  10. SSL(HTTPS通信)
PAGE TOP