应该使用使用DNS/MX记录的电子邮件验证吗?
问题描述:
我注意到大多数用于电子邮件验证的脚本不使用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;
答
大多数的网站,特别是那些保留登录信息,发送确认电子邮件您注册之后。这不仅确认电子邮件地址是有效的,而且确认电子邮件地址属于提交者。有一个DNS查找将是多余的,除非你想给用户打电话,他们拼错了他们的电子邮件地址。
如果我想输入一个虚假的电子邮件地址,[email protected](AAA,汽车俱乐部)和[email protected](来自RFC 2606)都会通过。我认为DNS查找不会像您想象的那样捕获尽可能多的虚假地址。
答
这可能是缓慢的这样做。如果你在表单中进行DNS验证,那么在表单提交之前以某种方式使用AJAX开始验证是明智的。
除此之外,您的支票将在具有文字IP地址的地址上失败,但个人而言,我不想接受我的Web表单上的那些。我不在乎,如果他们符合RFC822)
答
它使你的邮件服务器很容易拉断的DOS攻击。
好点。如果一些垃圾邮件发送者不断提交表单,我的服务器将会处理太多。 – 2009-07-11 01:44:57
缓存结果可能会减轻这种压力 – rojoca 2009-07-11 05:02:44