У меня есть сценарий 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 и т. Д.
Есть идеи, как лучше проверить подлинность?
Содержание From
поле электронной почты настраивается.
Вы можете думать об этом как поле, похожее на предмет, скажем.
Я имею в виду, что любой, имеющий правильное знание, может положить туда что угодно.
С другой стороны, Gmail, как правило, имеет очень хорошие фильтры спама, поэтому это не должно происходить очень часто.
Если это происходит слишком часто и является проблемой, тогда вам следует применить дополнительную фильтрацию.
Например, создайте базу данных с наиболее злоупотребленными электронными письмами и выполните дополнительную обработку.
Других решений пока нет …