PHP 入力検証方法: PHP 組み込み関数 (filter_var、preg_match) を使用する、正規表現を使用する (パスワード強度の検証など)、ホワイトリストまたはブラックリストを使用する (特定の入力値を制限または禁止する)
PHP 入力検証の適切な実践
入力検証は、悪意のある入力や無効な入力によるアプリケーションへの損傷を防ぐため、Web アプリケーションでは非常に重要です。 PHP には、入力を効率的に検証するためのさまざまな組み込み関数とテクニックが用意されています。
1. PHP 組み込み関数を使用する
PHP には、入力をフィルタリングおよび検証するための便利な組み込み関数がいくつかあります。例:
// 过滤用户输入中的 HTML 标记 $filtered_input = filter_var($_POST['input'], FILTER_SANITIZE_SPECIAL_CHARS); // 验证电子邮件地址 $is_email_valid = filter_var($_GET['email'], FILTER_VALIDATE_EMAIL);
2. 正規表現を使用する
正規表現は、複雑な入力を検証するために使用できる強力なパターンです。正規表現を使用してパスワードの強度を検証する方法は次のとおりです:
function validate_password($password) { $regex = '/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,}$/'; return preg_match($regex, $password); }
3. ホワイトリストまたはブラックリストを使用します
入力に明示的な許可または禁止の値がある場合、検証を行うことができます。ホワイトリストまたはブラックリストを使用して行われます。
ホワイトリスト: 特定の値のみを通過させます。たとえば、次のコードでは、特定の果物の入力のみが許可されます:
$allowed_fruits = array('apple', 'banana', 'orange'); if (in_array($_GET['fruit'], $allowed_fruits)) { // 输入有效 }
Blacklist: 特定の値を渡すことは許可されません。たとえば、次のコードは、特定のキーワードを含む入力を禁止します。
$disallowed_keywords = array('spam', 'malware', 'virus'); if (stripos($_POST['comment'], $disallowed_keywords) !== false) { // 输入无效 }
実用的なケース: ユーザー登録フォーム
以下は、ユーザー登録フォームのコード例です。 PHP 入力検証の使用方法:
<?php // 验证用户输入 $errors = array(); if (empty($_POST['username'])) { $errors[] = '用户名不能为空'; } if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errors[] = '无效的电子邮件地址'; } if (!validate_password($_POST['password'])) { $errors[] = '密码强度不足'; } // 处理已验证的输入 if (empty($errors)) { // 注册用户 } ?>
これらの実践に従うことで、ユーザー入力を効果的に検証し、アプリケーションのセキュリティと整合性を確保できます。
以上がPHP 入力検証への正しいアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。