2014-10-18 87 views
1

我有一個PHP腳本,定期檢查電子郵件從谷歌應用服務電子郵件,就檢查誰的電子郵件是從,並分配了電子郵件給他們我們的平臺上考慮:PHP IMAP「FROM」真實性

$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等的分級。

任何想法檢查真實性的最佳方法是什麼?

回答

0

From電子郵件字段的內容是可配置的。

您可以將其視爲與主題相似的字段。
我的意思是任何有正確知識的人都可以把任何東西放在那裏。

另一方面,Gmail作爲一般規則具有非常好的垃圾郵件過濾器,所以這不應該經常發生。

如果發生這種情況太頻繁而且是一個問題,那麼您應該實施一些額外的過濾。
例如,創建數據庫中濫用最多的電子郵件並執行一些額外的處理。

+0

不幸的是,這並沒有真正的幫助 - 必須有一個很好的方法來檢查電子郵件是否在標題中是真實的 – user3245931 2014-12-25 22:45:42

+0

看看DKIM:http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail – 2014-12-27 04:55:32