ホームページ  >  記事  >  バックエンド開発  >  PHP データ フィルタリングのヒント: filter_input_array 関数を使用してユーザー入力をバッチ検証する方法

PHP データ フィルタリングのヒント: filter_input_array 関数を使用してユーザー入力をバッチ検証する方法

王林
王林オリジナル
2023-07-29 21:09:29875ブラウズ

PHP データ フィルタリングのヒント: filter_input_array 関数を使用してユーザー入力をバッチ検証する方法

Web 開発では、ユーザー入力は信頼できないことがよくあります。データのセキュリティと整合性を確保するには、ユーザー入力を検証してフィルタリングする必要があります。 PHP には、ユーザー入力をバッチで検証するのに役立つ filter_input_array 関数が用意されています。

filter_input_array 関数は、入力のタイプ (INPUT_GET、INPUT_POST、INPUT_COOKIE など)、フィルタリング ルール配列、配列を入力として許可するかどうか (INPUT_GET がデフォルトの入力タイプ) の 3 つのパラメータを受け入れます。フィルター処理された配列を返します。エラーが発生した場合は false を返します。

以下は、filter_input_array 関数を使用してユーザー入力をバッチ検証するサンプル コードです:

<?php
// 设置输入过滤规则
$filters = array(
    'username'  => FILTER_SANITIZE_STRING,
    'email'     => FILTER_VALIDATE_EMAIL,
    'age'       => array(
        'filter'    => FILTER_VALIDATE_INT,
        'options'   => array('min_range' => 18, 'max_range' => 60)
    ),
    'website'   => array(
        'filter'    => FILTER_VALIDATE_URL,
        'flags'     => FILTER_NULL_ON_FAILURE
    )
);

// 获取过滤后的输入数据
$input = filter_input_array(INPUT_POST, $filters);

// 验证是否发生错误
if ($input === false) {
    die('输入数据验证失败!');
}

// 输出过滤后的输入数据
echo "用户名:" . $input['username'] . "<br>";
echo "邮箱:" . $input['email'] . "<br>";
echo "年龄:" . $input['age'] . "<br>";
echo "个人网站:" . ($input['website'] ?? '未填写') . "<br>";
?>

この例では、4 つの入力フィルター ルールを設定します: ユーザー名は FILTER_SANITIZE_STRING を使用してフィルターされ、電子メールはフィルターされます。は FILTER_VALIDATE_EMAIL を使用して検証され、age は FILTER_VALIDATE_INT を使用して値の範囲を検証および設定し、Web サイトは FILTER_VALIDATE_URL を使用して検証および設定し、失敗した場合は null を返します。

filter_input_array 関数を呼び出し、入力タイプを INPUT_POST として指定すると、ユーザーが送信した POST データを取得し、フィルター処理と検証を同時に行うことができます。いずれかの入力が検証に失敗した場合、filter_input_array 関数は false を返します。

検証に合格した後、必要に応じてフィルタリングされたデータを処理して使用できます。サンプルコードでは、フィルタリングされたユーザー名、メールアドレス、年齢、個人の Web サイトを出力します。

filter_input_array 関数を使用してユーザー入力をバッチ検証すると、検証コードの数を効果的に削減し、アプリケーションのセキュリティを強化できます。同時に、特定のニーズを満たすためにカスタム フィルタリング ルールを追加することもできます。

要約すると、filter_input_array 関数を合理的に使用することで、ユーザー入力の制御とセキュリティを向上させ、開発時間とコード量を削減し、アプリケーションの信頼性と堅牢性を高めることができます。

この記事が、filter_input_array 関数を使用してユーザー入力をバッチで検証し、Web アプリケーションのセキュリティと信頼性を向上させる方法を学ぶのに役立つことを願っています。

以上がPHP データ フィルタリングのヒント: filter_input_array 関数を使用してユーザー入力をバッチ検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。