enable blacklisting of email addresses (regex)
we had email domain blacklisting before, but this is more powerful.
This commit is contained in:
parent
8c391cca88
commit
c500696487
@ -21,7 +21,7 @@ resolver.lifetime = 5.0
|
|||||||
resolver.nameservers = settings.NAMESERVERS
|
resolver.nameservers = settings.NAMESERVERS
|
||||||
|
|
||||||
|
|
||||||
maildomain_blacklist = settings.MAILDOMAIN_BLACKLIST.strip().splitlines()
|
email_blacklist = settings.EMAIL_BLACKLIST.strip().splitlines()
|
||||||
|
|
||||||
|
|
||||||
def check_mx(domain):
|
def check_mx(domain):
|
||||||
@ -49,9 +49,9 @@ def check_mx(domain):
|
|||||||
return valid
|
return valid
|
||||||
|
|
||||||
|
|
||||||
def check_blacklist(domain):
|
def check_blacklist(email):
|
||||||
for blacklisted_re in maildomain_blacklist:
|
for blacklisted_re in email_blacklist:
|
||||||
if re.search(blacklisted_re, domain):
|
if re.search(blacklisted_re, email):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ class RegistrationFormValidateEmail(RegistrationForm):
|
|||||||
valid_mx = check_mx(domain)
|
valid_mx = check_mx(domain)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception('RegistrationFormValidateEmail raised an exception:')
|
logger.exception('RegistrationFormValidateEmail raised an exception:')
|
||||||
not_blacklisted = check_blacklist(domain)
|
not_blacklisted = check_blacklist(email)
|
||||||
if valid_mx and not_blacklisted:
|
if valid_mx and not_blacklisted:
|
||||||
return email
|
return email
|
||||||
logger.info('RegistrationFormValidateEmail: rejecting email address %r' % email)
|
logger.info('RegistrationFormValidateEmail: rejecting email address %r' % email)
|
||||||
|
@ -62,12 +62,13 @@ BAD_HOSTS = set([])
|
|||||||
# please configure your own nameservers in your local settings file.
|
# please configure your own nameservers in your local settings file.
|
||||||
NAMESERVERS = ['8.8.8.8', '1.1.1.1', ]
|
NAMESERVERS = ['8.8.8.8', '1.1.1.1', ]
|
||||||
|
|
||||||
# registration email validation: disallow specific email domains,
|
# registration email validation: disallow specific email patterns,
|
||||||
# e.g. domains that have a non-working mx / that are frequently abused.
|
# e.g. domains that have a non-working mx / that are frequently abused.
|
||||||
# we use a multiline string here with one regex per line (used with re.search).
|
# we use a multiline string here with one regex per line (used with re.search).
|
||||||
# the domains given below are just examples, please configure your own
|
# the patterns given below are just examples, please configure your own
|
||||||
# regexes in your local settings file.
|
# regexes in your local settings file.
|
||||||
MAILDOMAIN_BLACKLIST = r"""
|
EMAIL_BLACKLIST = r"""
|
||||||
|
foobar@example\.org$
|
||||||
mailcatch\.com$
|
mailcatch\.com$
|
||||||
mailspam\.xyz$
|
mailspam\.xyz$
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user