在PHP中从任何发件人发送电子邮件的可能性

在PHP中从任何发件人发送电子邮件的可能性,php,email,Php,Email,当我在我的网站上工作时,我用我网站的PHP代码给自己发了一封电子邮件。发送它的代码如下所示: 但是在标题中,我不小心拼错了发件人的电子邮件地址。令我惊讶的是,当我检查我的收件箱时,它确实给我发了一封电子邮件,但在“发件人”部分有一个输入错误。然后,我尝试将发件人地址更改为我的另一封现有电子邮件,我的网站不应访问该电子邮件。但令我惊讶的是,它仍然发送电子邮件给我,而且还有我其他电子邮件地址的发件人地址 我的问题是:这不是一个严重的安全漏洞吗?因为我可以从任何地址发送电子邮件,而无需登录。有了这

当我在我的网站上工作时,我用我网站的PHP代码给自己发了一封电子邮件。发送它的代码如下所示:


但是在标题中,我不小心拼错了发件人的电子邮件地址。令我惊讶的是,当我检查我的收件箱时,它确实给我发了一封电子邮件,但在“发件人”部分有一个输入错误。然后,我尝试将发件人地址更改为我的另一封现有电子邮件,我的网站不应访问该电子邮件。但令我惊讶的是,它仍然发送电子邮件给我,而且还有我其他电子邮件地址的发件人地址

我的问题是:这不是一个严重的安全漏洞吗?因为我可以从任何地址发送电子邮件,而无需登录。有了这个,我可以模仿任何人


附:我不太熟悉电子邮件的工作原理,所以这可能是一个简单的问题。我还猜测,在任何可以自己设置标题的地方,这都是可能的,我只是在PHP中找到它。

这就是所谓的电子邮件欺骗。电子邮件通过SMTP(智能邮件传输协议)发送,可以通过SMTP发送电子邮件,而无需验证您是否确实是此电子邮件地址的所有者。这不是一个新把戏,这就是为什么你总是要怀疑。据我所知,这些电子邮件通常被接收服务器接受,但它们保留了传入SMTP的日志,因此保存了发件人的IP地址。我不建议出于恶意目的使用电子邮件欺骗。查看更多详细信息。

smtp服务器是您的?这是否回答了您的问题?“这不是一个严重的安全漏洞吗”是的,这就是电子邮件的工作原理。没有固有的发送方验证。像SPF和DKIM这样的附加组件改进了这一点,但它们通常不是必需的。感谢您的解释,现在我对电子邮件和smtp稍微熟悉一些:)