PHP メールフォームからのデータをサニタイズするための最近のベストプラクティスと考えられているものは何ですか?
私は現在、このようなものを使用しています...
$msg = $_POST['msg'];
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$name = $_POST['name'];
$subject = "Message from the MY_WEBSITE website e-mail system";
$message = "From: " . $name . "\n";
$message .= "Email: " . $email . "\n\n";
$message .= $msg;
$headers = "From: " . $email . "\r\n" .
"Reply-To: " . $email . "\r\n" .
"X-Mailer: PHP/" . phpversion();
$mailSuccess = mail("me@example.com", $subject, $message, $headers);
この方法で電子メール フィールドを単純にフィルタリングするだけで十分な保護でしょうか? スパマーから保護するために、スクリプトをより効果的に強化できますか?
前もって感謝します!
[編集]これまでの回答は、私が自分自身を十分に説明していないことを示唆しているため、明確化。
私は主にスパムボットがこのスクリプトを入手することには関心がありませんが、誰かがこのスクリプトを利用してme@example.com
. これにはボットが含まれる可能性がありますが、人間が CAPTCHA テストを無効にする可能性もあります。
私が探しているのは、mail() メソッドによって送信された電子メールが乗っ取られないようにする PHP です。これはおそらく、特定の文字を単純に削除する正規表現またはフィルターなどです。ありがとうございました。[/編集]