2009-07-10 28 views
2

我注意到大多數用於電子郵件驗證的腳本不使用DNS信息來確保給定的域實際存在。應該使用使用DNS/MX記錄的電子郵件驗證嗎?

是什麼,爲什麼一個可能不使用DNS檢查的原因?

它真的能減少假冒的電子郵件的數量或使形式更便於使用?

例片段:

$host = explode('@', $email); 
if(checkdnsrr($host[1].'.', 'MX')) return true; 
if(checkdnsrr($host[1].'.', 'A')) return true; 
if(checkdnsrr($host[1].'.', 'CNAME')) return true; 

回答

6

大多數的網站,特別是那些保留登錄信息,發送確認電子郵件您註冊之後。這不僅確認電子郵件地址是有效的,而且確認電子郵件地址屬於提交者。有一個DNS查找將是多餘的,除非你想給用戶打電話,他們拼錯了他們的電子郵件地址。

如果我想輸入一個虛假的電子郵件地址,[email protected](AAA,汽車俱樂部)和[email protected](來自RFC 2606)都會通過。我認爲DNS查找不會像您想象的那樣捕獲儘可能多的虛假地址。

3

這可能是緩慢的這樣做。如果你在表單中進行DNS驗證,那麼在表單提交之前以某種方式使用AJAX開始驗證是明智的。

除此之外,您的支票將在具有文字IP地址的地址上失敗,但個人而言,我不想接受我的Web表單上的那些。我不在乎,如果他們符合RFC822)

2

它使你的郵件服務器很容易拉斷的DOS攻擊。

+0

好點。如果一些垃圾郵件發送者不斷提交表單,我的服務器將會處理太多。 – 2009-07-11 01:44:57

+0

緩存結果可能會減輕這種壓力 – rojoca 2009-07-11 05:02:44

相關問題