電子書籍の厳選無料作品が豊富!

PHPのmail関数で

$title = $_POST['title'];
$mail = $_POST['mail'];
$body = $_POST['body'];
mail ("○○○@○○○.○○○○", "$title", "$body", "From: $mail");

というコードがあったとして、$title、$body、$mailに ", や " が含まれていた場合、悪意の第三者に悪用されてしまう可能性はあるでしょうか?
あるとしたらどのような事が考えられますか?
良かったらお返事ください。

また、悪用される可能性がある場合、その対策なども教えて頂けるとうれしいです。

A 回答 (1件)

ダブルコーテーションやカンマが入っていても、そのまま送信されるか


SMTPサーバでエラーが発生する程度でしょうが、それよりも問題なのは
$_POST['mail']をそのまま mail関数のヘッダー領域に放り込んでいることです。
メールヘッダーを自由に書き加えることが出来ることになりますので、
悪意のある人からは、重宝されるでしょう。

まず、
$title はMIME変換しておきましょう

$bodyは、JIS変換するとともに、(Windowsの場合)行頭にピリオドを
配置されたときのために、ピリオドを消すかピリオドを2個にしておき
ましょう。

$mailは、ヘッダー領域に使われます。追加されて困るヘッダーは全て
削除するようにしておきましょう。
例 CCやBCCを埋め込まれるとメールの踏み台として使われますよ
    • good
    • 0
この回答へのお礼

お返事&ご指摘有難う御座います!
色々検索したりして調べたりしていたのですが、なかなか思うような情報が無かったもので助かりました。

また何かありましたらよろしくお願いします。

お礼日時:2008/09/22 20:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!