使用 php mail() 发送邮件 -- 滥用'from'电子邮件地址



我在php中使用mail()函数实现联系人表单。在联系表单中,我询问用户的电子邮件地址,在提交时,我将他们的消息发送到我自己的电子邮件地址。

下面是我的php代码:
    $to = 'myemail@gmail.com';
    $from_name = $_POST['InputName'];
    $from_email = $_POST['InputEmail'];
    $subject = 'Message from '.$from_name;
    $message = $_POST['InputMessage'];
    $headers = 'From: '.$from_email."rn".'Reply-To: '.$from_email.
        "rn".'X-Mailer: PHP/'.phpversion();
    $mailsuccess = mail($to,$subject,$message,$headers);

经过测试,我意识到有人可以伪装成别人的有效电子邮件地址向我发送电子邮件。例如,在测试期间,我使用朋友的电子邮件给自己发了一条消息。这不是安全问题吗?在我的gmail帐户中,我确实收到了警告,这封邮件可能不是来自那个人,但如果它不是明显的垃圾邮件,我通常会忽略这个警告。

例如,如果Bob (bob@gmail.com)通过联系人表单伪装成Chris (chris@gmail.com)发送消息,我将在电子邮件中回复Chris。克里斯认为他的邮箱被黑了,因为他从来没有发过那封邮件。这是一个普遍的问题吗?还是有办法让它更安全?

这叫做电子邮件欺骗。SMTP不是一个非常安全的协议。欺骗总是有可能的。不幸的是,除非地球上的每个电子邮件服务器都进行更改来解决这个问题,否则没有办法解决这个问题,但这是不可能的。

这就是很多网络钓鱼和垃圾邮件发生的原因。

最新更新