【发布时间】:2014-12-13 19:36:11
【问题描述】:
我有一个 PHP 脚本,它会定期检查来自 Google 应用程序电子邮件的电子邮件,然后查看电子邮件的发件人并将该电子邮件分配到他们在我们平台上的帐户:
$inbox = imap_open(gHost,gUser,gPass) or die('Cannot connect to Gmail: ' . imap_last_error());
$criteria ="ALL";
$emails = imap_search($inbox, $criteria);
foreach($emails as $email_number) { //loop all emails
$header = imap_headerinfo($inbox, $email_number);
$from = $header->from[0]->mailbox . "@" . $header->from[0]->host;
//sql script here to check against users table and allocate the email
}
问题是任何人都可以编写脚本来向我们的平台发送带有错误“发件人”的电子邮件,并且只要电子邮件是我们平台上的用户,它就会将电子邮件分配给该用户,这会打开一个安全漏洞。我们已经对此进行了测试,并且电子邮件成功通过了。我们如何检查 from 用户实际上是从那个人发送的 - 也许它可能是使用 DKIM、spf 等进行的评分。
知道什么是检查真伪的最佳方法吗?
【问题讨论】:
标签: php gmail-imap