Следует ли использовать проверку электронной почты с использованием записи DNS / MX? - PullRequest
2 голосов
/ 11 июля 2009

Я заметил, что большинство скриптов для проверки электронной почты не используют информацию DNS, чтобы гарантировать, что данный домен действительно существует.

По каким причинам можно не использовать проверки 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;

Ответы [ 3 ]

6 голосов
/ 11 июля 2009

Большинство сайтов, особенно те, которые сохраняют данные для входа, отправляют письма с подтверждением после регистрации. Это не только подтверждает, что адрес электронной почты является действительным, но также подтверждает, что адрес электронной почты принадлежит отправителю. Поиск DNS будет излишним, если вы не захотите сообщить пользователю, что он неправильно написал свой адрес электронной почты.

И если бы я хотел ввести поддельный адрес электронной почты, aaa@aaa.com (AAA, автоклуб) и somebody@example.com (из RFC 2606) оба прошли бы. Я не думаю, что DNS-поиск найдет столько поддельных адресов, сколько вы думаете.

3 голосов
/ 11 июля 2009

Это может быть медленно. Если вы выполняете проверку DNS в форме, было бы разумно каким-то образом использовать AJAX, чтобы начать проверку перед отправкой формы.

Кроме этого, ваш чек не прошел бы по адресам с буквальными IP-адресами, но лично я все равно не хотел бы принимать их в моей веб-форме. Мне все равно, соответствуют ли они RFC822;)

2 голосов
/ 11 июля 2009

Это делает атаки DOS на вашем почтовом сервере очень простыми.

...