ホームページ >バックエンド開発 >PHPチュートリアル >PHPフィルター
フィルター機能を備えた言語はほとんどありません。フィルターは、プログラミング言語の付加価値機能の 1 つです。これは、処理前にデータまたは文字列をフィルタリングするのに役立ちます。これは、システムの脆弱性の問題を防ぐためにこれを使用するときの要請です。 PHP フィルターを使用して、外部入力を検証またはサニタイズできます。 PHP フィルターは、コーディング中に使用できるさまざまな機能を備えた拡張機能です。たとえば、フォームからのクライアント入力を電子メール ID として取得する場合、データベース関連の操作の前にそれを検証またはサニタイズする必要があります。プログラマーまたは開発者は、ビジネス ニーズや要件に応じて PHP でこれらのフィルターを使用する必要があります。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
サニタイズとフィルターは、Web アプリケーション環境で最も一般的な操作です。基本的な構文は次のとおりです:
filter_var(variable, filter, options)
この関数 filter_var は 3 つのパラメータを取ります。最後の 2 つのパラメーター、フィルター、およびオプションはオプションです。最初のものは変数または識別子そのものです。これはフィルター処理するもの、2 番目は実行したいもの (ここでは、PHP で使用可能なオプションの ID を渡します)、最後はフィルター関連のオプションです。クイズの例で同じことを理解しましょう:
コード:
<?php $int_val = 200; if(filter_var($int_val, FILTER_VALIDATE_INT)){ echo "The <b>$int_val</b> is a valid one."; // valid } else{ echo "The <b>$int_val</b> not a valid input as an integer"; // invalid } ?>
上記の例では、フィルターを使用し、変数 $int_val に整数値があるかどうかをチェックしています。したがって、これは同じ出力です。
出力:
多くの PHP Web アプリケーションは、クライアント側から外部入力を受け取ります。ユーザーがすべてのデータを正しく入力することは期待できないため、処理前にユーザー入力をクリーンアップするという考えです。外部ユーザーまたはシステムの入力またはデータは、重大なセキュリティ問題を引き起こす可能性があります。
ここでフィルタリングして、次のようなさまざまな外部ソースから入力されたデータをサニタイズできます。
PHP フィルターとサニタイザーを併用すると、入力が有効かどうかを取得できます。この場合、有効な入力でない場合は、それをサニタイズして有効な入力にすることができます。次の例のセクションでは、これに関連するさまざまな例について説明します。
PHP ではさまざまな種類のフィルターを使用できます。 filter_list() 関数を使用してそのリストを確認できます。これらの関数は、URL、文字列、数値、IP アドレスなどをフィルタリングします。
このセクションでは、さまざまなフィルターのサンプル プログラムを個別に見ていきます。
文字列をサニタイズする
文字列が有効かどうかを確認するには
コード:
<?php $comment = "Hello word"; if(filter_var($comment, FILTER_SANITIZE_STRING)){ echo "The <b>$comment</b> is a valid one."; // valid } else{ echo "The <b>$comment</b> not a valid input"; // invalid } ?>
上記の例では、有効な文字列が確認できます。そのため、有効な値が得られます。
出力:
サニタイズされた文字列を出力として取得します
<?php $comment = "<i>Hello word</i>"; echo "Before sanitizing: ". $comment; $comment = filter_var($comment, FILTER_SANITIZE_STRING); echo "<br>"; // for new line echo "After sanitizing: ". $comment; ?>
2 つの異なる出力があることがわかります。サニタイズ前とサニタイズ後の出力が異なることがわかります。サニタイズ後、PHPのフィルター機能によりHTMLタグが削除されています。
出力:
IP アドレスを検証する
PHP フィルター関数がこの仕事を行ってくれます。例を見てみましょう。
コード:
<?php $ip_address = "172.16.254.1:40"; if(filter_var($ip_address, FILTER_VALIDATE_IP)){ echo "The <b>$ip_address</b> is a valid one."; // valid } else{ echo "The <b>$ip_address</b> is not a valid input"; // invalid } ?>
出力:
メールアドレスのサニタイズと検証
コード:
<?php $email_address = "someone@@testmail.com"; code> echo "Before Sanitizing: " . $email_address ."<br>"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($email_address, FILTER_SANITIZE_EMAIL); ?>
上記の例では、フィルター関数を使用してこの出力を取得しているため、無効な電子メール ID 値が含まれています。しかし、サニタイズした瞬間に、正しいメールが送信されます。
出力:
コード:
<?php $email_address = "[email protected]"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } ?>
上記の PHP コードの例では、電子メールが有効かどうかを確認します。
出力:
URL をサニタイズして検証します
この例では、入力 URL が有効かどうかを確認します。有効な URL でない場合は、それをサニタイズして修正します。
コード:
<?php $URL = "https://www.educba.com/��courses�"; echo "Before Sanitizing: " . $URL ."<br>"; if(filter_var($URL, FILTER_VALIDATE_URL)){ echo "The <b>$URL</b> is a valid one."; // valid } else{ echo "The <b>$URL</b> is not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL); ?>
出力:
ユーザー入力を検証またはサニタイズするには、PHP フィルターを使用する必要があります。このようにして、脆弱なユーザー入力を制限できます。ユーザー入力と値を検証するために、さまざまな PHP フィルター関数を使用できます。サニタイズを使用して値 (ユーザー入力または直接割り当てられた値) をクリーンアップすることもできます。データ処理に Cookie データを使用する前に、必ず PHP サニタイザーを使用する必要があります。
以上がPHPフィルターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。