[dnsAttr] On verifie que le domaine existe, les nom commençant par une chiffre sont valident

par exemple 4chan.org.
Si on ne vérifie pas le domaine, on permet à l'utilisateur de mettre
des points dans les noms de machines, ce qui n'est pas souhaitable.
This commit is contained in:
Valentin Samir 2013-05-13 20:06:46 +02:00
parent 6aae0d7894
commit b9fd6bbb91

View file

@ -508,8 +508,10 @@ class dnsAttr(Attr):
category = 'dns'
def parse_value(self, val):
val = val.lower()
name, _ = val.split('.', 1)
if not re.match('^[a-z](-*[a-z0-9]+)*$', name):
name, domain = val.split('.', 1)
if not domain in ['ferme.crans.org', 'crans.org', 'federez.net', 'wifi.crans.org', 'adm.crans.org', 'crans.ens-cachan.fr']:
raise ValueError("Nom d'hote invalide %r" % val) # somme toute vraisemblance il y a un point dans le nom de la machine
if not re.match('^[a-z0-9](-*[a-z0-9]+)*$', name):
raise ValueError("Nom d'hote invalide %r" % val)
self.value = val