最近、PHPの電子メールフォームからデータをサニタイズするベストプラクティスと考えられるものはありますか?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("[email protected]", $subject, $message, $headers);
は、それだけでこの方法で電子メールのフィールドをフィルタリングするための十分な保護ですか?スパマーを守るためにスクリプトをより効果的に強化できますか?
ありがとうございます!
[EDIT]明確化、答えは今のところ、私はよく自分自身を説明していませんでしたことを示唆しているからです。
私は主にこのスクリプトを手に入れたスパムロボットに関心を持っているわけではありませんが、それを利用して誰でも不正な電子メールを[email protected]
以外のアドレスに送信することになります。これにはボットが含まれているかもしれませんが、同様にCAPTCHAテストを打ち負かす人間かもしれません。
は私が探しているメール()メソッドで送信されたメールがハイジャックされていないことを確認しますPHPです。これはたぶん特定の文字を取り除く正規表現やフィルタなどです。 。おかげで再び[/ EDIT]
>ベストプラクティス(私見)HTMLフォームから供給された電子メールアドレスに電子メールを送信することはありません。 この点を明確にすると、提供されたコードはサイト所有者以外の人に電子メールを送信しません。そのアドレスはPHP([email protected])にハードコードされています。私が保証したいのは、誰もそのスクリプトをハイジャックしないようにすることです。他の人に迷惑をかけるための古典的な\ ncc:[email protected]と同じです。 リンクありがとうございます! :c) – Wikiup
申し訳ありませんがあなたは正しいです:私はそれを誤解しました。今修正されました。 – cletus