validate email addresses to see if the hostnames actually resolve before committing a new user
This commit is contained in:
parent
f9497bcb95
commit
949842a88d
2 changed files with 17 additions and 6 deletions
20
boot.php
20
boot.php
|
@ -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,
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Reference in a new issue