validate email addresses to see if the hostnames actually resolve before committing a new user

This commit is contained in:
Friendika 2010-11-15 20:22:40 -08:00
parent f9497bcb95
commit 949842a88d
2 changed files with 17 additions and 6 deletions

View file

@ -1160,13 +1160,25 @@ function validate_url(&$url) {
$url = 'http://' . $url; $url = 'http://' . $url;
$h = parse_url($url); $h = parse_url($url);
if(! $h) { if(($h) && (checkdnsrr($h['host'], 'ANY'))) {
return false; return true;
} }
if(! checkdnsrr($h['host'], 'ANY')) { return false;
}}
// checks that email is an actual resolvable internet address
if(! function_exists('validate_email')) {
function validate_email($addr) {
if(! strpos($addr,'@'))
return false; return false;
$h = substr($addr,strpos($addr,'@') + 1);
if(($h) && (checkdnsrr($h, 'ANY'))) {
return true;
} }
return true; return false;
}} }}
// Check $url against our list of allowed sites, // Check $url against our list of allowed sites,

View file

@ -65,10 +65,9 @@ function register_post(&$a) {
if(! allowed_email($email)) if(! allowed_email($email))
$err .= t('Your email domain is not among those allowed on this site.') . EOL; $err .= t('Your email domain is not among those allowed on this site.') . EOL;
if(! valid_email($email)) if((! valid_email($email)) || (! validate_email($email)))
$err .= t('Not a valid email address.') . EOL; $err .= t('Not a valid email address.') . EOL;
$nickname = $_POST['nickname'] = strtolower($nickname); $nickname = $_POST['nickname'] = strtolower($nickname);
if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname))