PHP 開発では、ユーザー入力データを処理する必要があることが多く、信頼できないユーザー入力データは、SQL インジェクションや XSS 攻撃など、さまざまなセキュリティ問題を簡単に引き起こす可能性があります。したがって、ユーザー入力を受け取るときは、入力データがシステムのセキュリティを向上させるための要件を満たしていることを確認するために、データをフィルタリングして検証する必要があります。
PHP は、単一または複数のユーザー入力データをフィルタリングするための filter_input_array() 関数を提供します。この関数は、フィルターを使用して入力データのセットを検証およびフィルター処理することにより、入力データのセキュリティを向上させることができます。
この記事では、PHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルターする方法を紹介し、対応するコード例を示します。
1. filter_input_array() 関数
filter_input_array() 関数は、複数の入力データを検証およびフィルタリングするために使用されます。この関数の定義は次のとおりです:
filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] ) : mixed
この関数は 3 つのパラメータを渡す必要があります:
パラメータ 1: type
、必要なデータ型を示します。 INPUT_GET
、INPUT_POST
、INPUT_COOKIE
、INPUT_SERVER
などのフィルターが適用されます。具体的な意味は次のとおりです。
INPUT_GET
: $_GET
から変数を取得; INPUT_POST
: $_POST## から変数を取得#;
:
$_COOKIE から変数を取得します;
:
$_SERVER から変数を取得します;
:
$_ENV から変数を取得します;
:
から変数を取得します$_REQUEST。
定義, 入力データの定義ルールを表します。ルール配列のセットを使用して定義できます。具体的な形式は次のとおりです:
array( '变量名' => array( 'filter' => 指定的验证器, 'flags' => 可选的标记, 'options' => 可选的选项, 'name' => 为变量指定一个替代名称, ), '变量名2' => array( 'filter' => 指定的验证器2, 'flags' => 可选的标记, 'options' => 可选的选项, 'name' => 为变量指定一个替代名称2, ), //... );ここで、
filter は指定されたバリデータを表します。これは、
FILTER_VALIDATE_EMAIL、
FILTER_VALIDATE_INT などの組み込みバリデータ、またはカスタム バリデータ、
flags はオプションのタグを表し、
options はオプションのオプションを表し、
name は変数の代替名を表します。
add_empty、空の値をフィルタリングして検証するかどうかを示します。
false を返します。
<?php $definitions = array( 'username' => array( 'filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '/^[a-z0-9_-]{6,12}$/i'), 'name' => '用户名', ), 'email' => array( 'filter' => FILTER_VALIDATE_EMAIL, 'name' => '邮箱', ), 'age' => array( 'filter' => FILTER_VALIDATE_INT, 'options' => array('min_range' => 18, 'max_range' => 100), 'name' => '年龄', ), ); $input_data = filter_input_array(INPUT_POST, $definitions); if (!$input_data) { echo '发生了一个错误。'; } else { if (in_array(null, $input_data, true) || in_array(false, $input_data, true)) { echo '输入数据不正确。'; } else { echo '输入数据正确。'; } } ?>where では、3 つの入力データを含む配列を定義し、filter_input_array() 関数を通じてこれらの入力データを検証してフィルタリングします。上記の例では、いくつかの組み込みバリデータ
FILTER_VALIDATE_REGEXP、
FILTER_VALIDATE_EMAIL、および
FILTER_VALIDATE_INT を使用しており、入力データが正規表現に準拠しているかどうかを検証するために使用されます。 . 、電子メール形式に準拠しているかどうか、および整数であるかどうか。さらに、
min_range、
max_range などのいくつかのオプションを使用して、入力データの最小値と最大値を許可します。最後に、if ステートメントを使用して、入力データが正当かどうかを判断します。
以上がPHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルタリングします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。