ホームページ >バックエンド開発 >PHPチュートリアル >phpmaster |フィルター関数を使用した入力検証
読んでくれてありがとう! 「フィルター関数を使用した入力検証」は、最もエキサイティングなタイトルではありません。ただし、PHPのフィルター関数をマスターすることは、堅牢で安全なアプリケーションを構築するために重要です。この記事では、入力検証が不可欠である理由を説明し、PHPの組み込み関数の利点を強調し、filter_input()
およびfilter_var()
を使用して実用的な例を提供し、潜在的な落とし穴について説明し、行動を促すために締めくくります。準備ができて?飛び込みましょう!
キーテイクアウト:
filter_input()
これらの関数は、さまざまなデータ型と事前定義されたフィルター(電子メール、URL、整数など)に加えて、filter_var()
。
FILTER_CALLBACK
PHP 5.2.0はおよびを導入し、検証を簡素化しました。 これらの組み込み関数を使用することは、いくつかの理由でカスタムソリューションまたはサードパーティツールよりも推奨されます。
エラーの削減:カスタム検証は、しばしばエッジケースを見落とし、脆弱性につながります。 保守性の向上:
組み込み関数の一貫した使用により、コードの読み取り可能性が向上し、メンテナンスのオーバーヘッドが減少します。filter_input()
簡略化されたコードレビュー:filter_var()
標準関数を使用すると、コードが理解しやすくなり、レビューが簡単になります。
filter_input()
外部変数を取得してフィルターします。 URLから15〜20の整数が必要だったとしましょう。
非効率的な方法:
<code class="language-php"><?php if (isset($_GET["value"])) { $value = $_GET["value"]; } else { $value = false; } if (is_numeric($value) && ($value >= 15 && $value <= 20)) { // run my code } else { // handle the issue } ?></code>
:filter_input()
を使用した効率的なメソッド
<code class="language-php"><?php $value = filter_input(INPUT_GET, "value", FILTER_VALIDATE_INT, array("options" => array("min_range" => 15, "max_range" => 20))); if ($value) { // run my code } else { // handle the issue } ?></code>
は、関数またはクラス内の検証に最適です。 この電子メール関数を考慮してください:filter_var()
危険な電子メール機能:
<code class="language-php"><?php function emailUser($email) { mail($email, "Here is my email", "Some Content"); } ?></code>
:filter_var()
を使用して電子メール機能を保護します
<code class="language-php"><?php function emailUser($email) { $email = filter_var($email, FILTER_VALIDATE_EMAIL); if ($email !== false) { mail($email, "Here is my email", "Some Content"); } else { // handle invalid email address } } ?></code>
フラグを使用すると、カスタム検証ロジックが可能になります
FILTER_CALLBACK
よくある質問(FAQ)(オリジナルに似ていますが、簡潔さと明確さのために言い換えられます)
フィルター関数の利点:
堅牢で安全なデータ検証。 SQLインジェクションやXSSなどの脆弱性を防ぎます
フィルター関数の仕組み:filter_var()
検証チェック基準。消毒はデータをクリーニングします。どちらも不可欠です。FILTER_CALLBACK
以上がphpmaster |フィルター関数を使用した入力検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。