PHP フィルター
データの検証 = データが適切な形式であるかどうかを判断します。
データのサニタイズ = データから不正な文字を削除します。
PHPフィルター拡張機能
PHPフィルターは、外部入力の検証とサニタイズに使用されます。
PHPフィルター拡張機能には、ユーザー入力のチェックに必要な多くの関数があり、データの検証をより簡単かつ迅速に行えるように設計されています。
filter_list()
関数を使用して、PHPフィルター拡張機能が提供するものを一覧表示できます。
例
フィルターを使用する理由
多くのWebアプリケーションは外部入力を受け取ります。外部入力/データは次のとおりです。
- フォームからのユーザー入力
- Cookie
- Webサービスデータ
- サーバー変数
- データベースクエリの結果
常に外部データを検証する必要があります。送信されたデータが無効であると、セキュリティ上の問題が発生し、Web ページが破損する可能性があります。PHPフィルターを使用すると、アプリケーションが正しい入力を確実に取得できます。
PHP filter_var()関数
filter_var()
データの検証とサニタイズの両方に機能します。
filter_var()
関数は、指定されたフィルターで単一の変数をフィルター処理します。次の2つのデータが必要です。
- チェックしたい変数
- 使用するチェックのタイプ
文字列をサニタイズする
次の例では、filter_var()
文字列からすべての HTMLタグを削除する関数:
例
整数を検証する
次の例では、filter_var()
変数$intが整数かどうかをチェックする関数。 $intが整数の場合、以下のコードの出力は「整数は有効です」になります。 $intが整数でない場合、出力は次のようになります: "Integer is not valid":
例
ヒント: filter_var()と0の問題
上記の例で、$intが0に設定されている場合、上記の関数は「整数は無効です」を返します。この問題を解決するには、次のコードを使用します。
例
IPアドレスを検証する
以下の例では、filter_var()
関数を使用して、変数$ipが有効なIPアドレスであるかどうかをチェックしています。:
例
メールアドレスのサニタイズと検証
次の例では、filter_var()
関数を使用して、まず$email変数から不正な文字をすべて削除し、次に有効なメールアドレスかどうかをチェックします:
例
URLのサニタイズと検証
次の例では、filter_var()
最初にURLからすべての不正な文字を削除し、次に$urlが有効なURLであるかどうかを確認する関数:
例
完全なPHPフィルターリファレンス
すべてのフィルタ関数の完全なリファレンスについては、PHPフィルタリファレンスの各フィルタをチェックして、利用可能なオプションとフラグを確認してください。
リファレンスには、各機能の簡単な説明と使用例が含まれています。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。