我有一个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
}
问题是任何人都可以写一个脚本来向我们的平台发送一个错误的“来自”的电子邮件,如果电子邮件是我们平台上的用户,它会将电子邮件分配给该用户,这会打开一个安全漏洞。我们已经对此进行了测试,成功通过了电子邮件。我们如何检查来自该用户的用户是否实际上已经发送过 - 可能是使用DKIM,spf等进行评分。
知道检查真实性的最佳方法是什么?
答案 0 :(得分:0)
From
电子邮件字段的内容是可配置的。
你可以把它想象成一个类似于主题的字段 我的意思是任何有正确知识的人都可以在那里放任何东西。
另一方面,Gmail作为一般规则有非常好的垃圾邮件过滤器,所以这不应该经常发生。
如果这种情况经常发生并且是个问题,那么您应该实施一些额外的过滤 例如,使用滥用最多的电子邮件创建数据库并进行一些额外处理。
答案 1 :(得分:0)
我知道,这个问题已有好几年了,但是我不小心在Google搜索中发现了这个问题,希望我能帮助其他人找到该页面。
From
标题。正如线程创建者和Antoan Milkov所述,发件人通常可以使用From
标题中的几乎每个电子邮件地址或文本。
要验证是否允许发件人ip地址以From
-发件人SPF的名义发送邮件,可以使用。但是,大多数情况下,默认情况下未配置SPF,并且需要由域管理员设置。
更多详细信息:https://de.wikipedia.org/wiki/Sender_Policy_Framework
我还没有使用过它,但是它有助于检查PHP中的SPF:
https://github.com/Mika56/PHP-SPF-Check
使用DKIM,电子邮件由发件人签名,收件人可以检查签名是否有效。此外,域管理员还需要配置DKIM。
更多详细信息:https://www.dmarcanalyzer.com/de/dkim-de/
这有助于通过PHP验证DKIM签名:
https://github.com/angrychimp/php-dkim