input type = "email" permet test @ test, pourquoi?

10

J'ai toujours supposé que le navigateur e-mail-validation-regex est plus robuste que certains modèles regex en JS / PHP.

Mon employeur vient de me montrer que les deux chaînes sont considérées comme correctes (enfin en FF28):

[email protected] // Expected to be true, is true
test@test     // Expected to be false, is true

Pourquoi ce dernier est-il vrai? Est-ce un bug ou quelque chose pour l'avenir? Parce que pour autant que je sache, ce n'est pas correct de ne pas utiliser d'extention (à part peut-être les hôtes locaux).

Quelqu'un qui peut faire la lumière sur cela?

Martijn
la source
2
"à part peut-être les hôtes locaux" - et comment le navigateur se différencie-t-il?
MrWhite
1
De plus, je considère que cela <input type="email" />n'est utile que pour les sites Web mobiles, de sorte que la plupart des claviers s'affichent avec un affichage approprié (avec la @clé et certains .comraccourcis…).
RichouHunter
Je ne sais pas, je ne construis pas de navigateurs :) Cela pourrait être une astuce astucieuse, ou peut-être un paramètre que vous pourriez ajouterpattern
Martijn
6
C'est une adresse parfaitement valide, pourquoi serait-elle rejetée?
Jörg W Mittag
1
car test@testest une adresse e-mail valide ... elle est traitée testcomme un tld. Tout comme test@comest une adresse e-mail valide pour le comtld ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Réponses:

20

Il est valide car il testpeut s'agir d'un domaine de premier niveau et d' localpart@top-level-domainune adresse e-mail valide.

Voir par exemple Adresse e-mail, partie domaine

Matteo
la source
Et comme l'ICANN a désormais un processus permettant à toute personne (assez grande) de demander le TLD de son choix, il n'est plus vraiment possible pour un validateur d'e-mails de le rejeter en testtant que TLD simplement parce qu'il ne se trouve pas encore enregistré.
Steve Jessop
1
@SteveJessop En outre, le PO n'a pas précisé s'il parle de validité syntaxique (l'e-mail serait valide même s'il n'était pas enregistré) ou s'il parle de vérifier si l'e-mail fonctionne (et dans ce cas, beaucoup plus serait nécessaire). .
Matteo
Ne vérifiant pas s'il existe, j'ai été surpris que l'extension de domaine ne soit pas requise. Cela rendrait la validation du navigateur beaucoup moins utile, car quelqu'un n'a qu'à taper asd @ ads et cela passera.
Martijn
5
@Martijn: La "validation du navigateur" n'est qu'une vérification de validation de première ligne (qui est facilement contournée), elle doit donc être la vérification la plus large possible. La validation finale "stricte" doit toujours être dans votre logique côté serveur.
MrWhite
3

Vous pouvez modifier votre fichier d'hôtes ou exécuter un serveur DNS sur un réseau local pour créer une machine avec un nom de domaine de premier niveau. L'adresse e-mail ne sera accessible que si elle est routée uniquement au sein de ce réseau local, mais il s'agit d'une configuration possible.

Lie Ryan
la source
2

Notez également que les navigateurs Web ne sont pas tenus d'effectuer des vérifications de validation. Les navigateurs plus anciens ne font rien de spécial avec l'adresse e-mail. Les navigateurs plus récents peuvent valider, mais le type «e-mail» est plus utile sur les appareils mobiles où un clavier spécialisé peut être montré à l'utilisateur.

Ron Lussier
la source