Comment valider un domaine donné appartient à l'utilisateur?

10

J'écris un logiciel qui sera principalement utilisé par les entreprises.

J'ai alors eu l'idée de donner aux entreprises un moyen d'enregistrer leur domaine de messagerie afin que chaque utilisateur qui s'inscrit avec un e-mail du domaine donné soit automatiquement placé dans le groupe de sociétés.

Je sais que Slack fait quelque chose comme ça et cela fonctionne, mais il y a quelques problèmes ... par exemple, je viens d'enregistrer "live.it" (la version italienne de live.com par Microsoft).

Je ne peux pas simplement supposer que si un utilisateur a validé un e-mail avec un domaine spécifique, il est sûr de mettre chaque utilisateur avec le même domaine_mail dans le même groupe.

Par exemple, si je m'inscris avec [email protected], je ne veux pas laisser l'utilisateur s'inscrire "gmail.com" a son propre domaine.

Je voudrais éviter d'utiliser des méthodes comme "mettre un fichier html à la racine du domaine" ou "définir un enregistrement TXT", donc je me demandais comment faire.

Fez Vrasta
la source
11
Pourquoi demander de mettre un fichier à la racine du domaine vous pose problème? C'est exactement ce que fait Google Webmaster Tools. De plus, vous n'avez pas besoin de demander un fichier permanent: l'utilisateur le place sur le serveur, vous effectuez la vérification et le fichier peut être supprimé.
Arseni Mourzenko
9
Si votre configuration est si erronée que les utilisateurs de l'extérieur ne peuvent pas accéder à votre site Web principal, vous devriez être préoccupé par la configuration et blâmer vos administrateurs système, au lieu de vous inquiéter en ajoutant votre site aux outils Google pour les webmasters et en blâmer Google.
Arseni Mourzenko
1
Au lieu de leur donner un moyen qui fonctionne et qu'ils ont déjà utilisé plusieurs fois auparavant?
Arseni Mourzenko
6
@FezVrasta: Gardez à l'esprit que vous avez deux objectifs: autoriser l'accès aux utilisateurs autorisés et refuser l'accès aux utilisateurs non autorisés. Le rendre plus facile pour les utilisateurs autorisés facilite généralement aussi les utilisateurs non autorisés.
MSalters
4
Au cas où vous iriez sur la route des enregistrements DNS, vous devriez probablement utiliser des enregistrements TXT, pas MX.
Aaron Dufour

Réponses:

20

Fichier dans le répertoire racine

Ne négligez pas la possibilité de placer un fichier dans un répertoire racine du site Web de l'entreprise. Cela fonctionne bien et est largement utilisé: Google Webmaster Tools est un exemple de cette technique. Cela rend cette approche intéressante: comme la plupart des utilisateurs le savent déjà, ils ne seront pas perdus. En outre, il ne nécessite aucune connaissance technique, contrairement à la modification des enregistrements MX (la plupart des petites entreprises ne savent même pas ce qu'est un enregistrement MX).

Afin d'éviter de polluer le répertoire racine, vous devriez demander de mettre un fichier uniquement lors de vos vérifications. Une fois que vous avez trouvé le fichier, l'utilisateur peut le supprimer.

Notez que les utilisateurs qui n'ont pas de site Web d'entreprise ne pourront pas accéder à votre service, mais je ne pense pas qu'il y ait beaucoup de clients dans ce cas.

Notez que:

  • Vous devez vérifier à la fois http://example.com/file et http://www.example.com/file , car certains sites Web sont configurés de manière à ne pas prendre en charge le formulaire http://example.com/ .

  • Vous pouvez également prendre en charge HTTPS, étant donné que je ne pense pas qu'il y ait beaucoup d'entreprises sans redirection de HTTP vers HTTPS.

  • Vous ne devez accepter aucun autre domaine de troisième niveau tel que http://mysite.example.com/ , car cela permettra à quelqu'un qui a acheté un domaine de troisième niveau de prétendre qu'il est le propriétaire du domaine de deuxième niveau example.com .

Envoi d'un e-mail

L'envoi d'un e-mail avec lien secret est plutôt problématique. Vous ne pouvez pas le faire à [email protected], car une personne donnée peut ne pas avoir d'adresse e-mail d'entreprise (c'est souvent le cas des startups, où les gens préfèrent utiliser leur adresse personnelle).

L'utilisation d'e-mails tels que [email protected] ne fonctionnera pas dans certains cas.

  • Tout d'abord, il y a toujours des entreprises qui n'ont pas [email protected], [email protected] etc., mais qui ont leurs adresses e-mail "système" particulières que vous n'avez pas ajoutées à la liste blanche. Considérez spécifiquement les entreprises étrangères; par exemple, en France, il n'est pas rare d'utiliser "Administrat eu r" au lieu de "Administrateur", y compris pour les adresses e-mail et les noms de compte.

  • Deuxièmement, de nombreuses petites entreprises n'accèdent pas et ne savent pas comment accéder aux e-mails de leur système. Ils ne savent même pas qu'ils ont [email protected] avec des centaines d'e-mails urgents en attente de leur réponse.

    Pour la même raison, vous ne pouvez pas vous baser sur les enregistrements WHOIS pour l'adresse e-mail.

Arseni Mourzenko
la source
Qu'en est-il de l'envoi d'e-mails de validation à des utilisateurs tels que "info @", "administrateur @" "postmaster @"?
Fez Vrasta
@FezVrasta - les adresses e-mail sont incroyablement faciles à usurper.
Oded le
Je veux dire "j'envoie un e-mail à info @ avec un lien de confirmation à l'intérieur"
Fez Vrasta
6
@FezVrasta - un domaine peut ne pas être associé à un serveur de messagerie électronique, et si tel est le cas, il n'y a aucune garantie qu'une info@(ou une adresse locale) y sera définie, ou qu'il aura une adresse fourre-tout surveillée.
Oded le
3
"enregistrer leur domaine de messagerie afin que chaque utilisateur qui s'enregistre avec un e-mail du domaine donné soit automatiquement placé dans le groupe de sociétés.". Désolé, mais la question indique clairement que vous pouvez assumer un serveur de messagerie. Cette alternative suppose un serveur Web, ce qui n'est pas une donnée.
MSalters
17

La question est en effet: "Que signifie posséder un domaine de messagerie?".

Posséder un site Web est défini par la possibilité de mettre un fichier à la racine . Les utilisateurs ordinaires peuvent mettre un fichier http://example.com/~user42/validation.txtmais pas dessus http://example.com/validation.txt.

Pour le courrier électronique, il n'y a pas une telle hiérarchie. Cependant, l' postmasteradresse est spéciale. (Réservé par RFC2142 ) Vous ne pourrez pas créer [email protected]. Ainsi, la possibilité de créer et / ou d'accéder postmaster@est la preuve dont vous avez besoin pour la propriété d'un domaine de messagerie.

MSalters
la source
1
Cette particularité fait-elle partie d'une spécification, d'un composant intégré commun des serveurs de messagerie ou simplement d'une convention?
DougM
8
@DougM: Réservé par RFC 2142
MSalters
Merci, donc une option supplémentaire serait l'utilisation de postmaster @, merci
Fez Vrasta
5
@MSalters: Vous devriez mettre ce RFC dans votre réponse
Bergi
1
Pour de nombreux postmaster @ domain, cela ne va tout simplement pas à la bonne personne ou à personne du tout. Bien qu'il soit techniquement censé être un moyen de déterminer la propriété d'un domaine, vous ne pouvez pratiquement pas l'utiliser.
JamesRyan
10

Voyant dans vos commentaires que vous pourriez ne pas préférer utiliser la méthode du fichier à la racine du site Web, une alternative qui pourrait fonctionner est de

Vérifier la propriété à l'aide de WHOIS

Vous devez obtenir le domaine demandé (par exemple stackexchange.com) et l'un des e-mails répertoriés dans la sortie WHOIS de ce domaine . (Notez que cela ne fonctionnera pas pour les inscriptions secrètes / privées, mais si votre public est des sociétés, ce n'est généralement pas un problème)

Par exemple:

WHOIS information for stackexchange.com:**
...
Domain Name: STACKEXCHANGE.COM 
Registrar WHOIS Server: whois.name.com 
Registrar URL: http://www.name.com 
Updated Date: 2014-05-14T16:49:02-06:00 

Registrant Name: Sysadmin Team 
...
Registrant Email: [email protected] 
Admin Name: Sysadmin Team 
Admin Organization: Stack Exchange, Inc. 
...
Admin Email: [email protected] 
Tech Name: Sysadmin Team 
...
Tech Email: [email protected] 
Name Server: cf-dns02.stackexchange.com 
Name Server: cf-dns01.stackexchange.com 
DNSSEC: NotApplicable 

Vous pouvez même effectuer la whoisrecherche de manière interactive et fournir une liste déroulante des e-mails valides (dans ce cas, juste [email protected]). Vous enverriez alors un code / lien de vérification à l'e-mail choisi.

Digital Chris
la source
C'est ce qui se fait lors de la validation de certains certificats SSL. Ce n'est probablement pas une approche automatique. Mais ferait une bonne option secondaire.
GrandmasterB
@GrandmasterB Je ne vois pas pourquoi cela n'a pas pu être automatisé: recherche whois, grep les e-mails, laissez l'utilisateur en choisir un, envoyer le code de validation par e-mail.
Digital Chris
J'ai testé de cette façon avec deux de mes plus gros clients et les deux n'ont pas d'e-mail valide dans le whois (l'un n'a pas d'e-mails, l'autre a l'e-mail du support technique du titulaire du domaine ...
Fez Vrasta
1
Soit dit en passant, celui-ci pourrait être ajouté comme alternative.
Fez Vrasta
6

Demandez à vos utilisateurs d'ajouter un enregistrement TXT à leur domaine avec une référence à leur compte d'utilisateur sur votre site (leur nom d'utilisateur, leur ID ou un jeton arbitraire généré lorsqu'ils demandent à l'utilisateur de vérifier leur domaine).

Je me souviens avoir ajouté un enregistrement appelé adn_verification=<my user name>sur un réseau social pour afficher mon domaine comme vérifié, et je pensais que c'était assez soigné et ne nécessitait pas que le domaine pointe vers un serveur Web.


la source
Une grande partie des utilisateurs ne sauront pas ce qu'est un enregistrement TXT, et ceux qui le savent ne seront pas nécessairement suffisamment informés pour le définir.
Arseni Mourzenko
1
@MainMa c'est toujours une bonne fonctionnalité à implémenter.
1
+1. Ce n'est pas parce que vous avez un domaine que vous avez un serveur Web en cours d'exécution (bien que dans ce cas particulier, une entreprise aura probablement toujours un site Web :)).
Matt
FWIW, c'est l'approche que Microsoft utilise si vous voulez un domaine personnalisé pour Office 365.
Casey
2

Pour ajouter aux suggestions déjà sur la page: je recommande de donner à l'utilisateur des options sur la façon dont il valide son domaine. Les autres suggestions sur la page sont toutes parfaitement utilisables, mais parfois vous êtes dans la situation où quelqu'un qui veut vérifier son domaine n'a qu'un accès limité à son serveur ou même à son site Web. Par exemple, votre utilisateur peut ne pas être en mesure d'ajouter des enregistrements ou des fichiers de domaine à la racine du domaine.

Par exemple, Troy Hunt permet aux utilisateurs de rechercher un domaine entier dans sa base de données de comptes compromis, mais vous devez d'abord vérifier. Il donne à l'utilisateur le choix de 4 méthodes:

  1. Par email;
  2. grâce à une balise META;
  3. Un téléchargement de fichier;
  4. un enregistrement TXT.

Dans les 4 de ces cas, il demande à l'utilisateur d'entrer une valeur spécifique quelque part contre laquelle il vérifie.

L'explication se trouve à http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .

Nzall
la source
merci mais comment fonctionne la vérification des e-mails? Comment peuvent-ils m'empêcher de valider un domaine "gmail.com" ou "hotmail.com"? (ou mieux, un service de messagerie Web gratuit inconnu).
Fez Vrasta du
Quoi que vous fassiez, à moins que vous ne disiez explicitement "ces adresses ne peuvent JAMAIS être validées", il est toujours possible que le fournisseur de messagerie Web enregistre son propre domaine, et il n'y a pas grand-chose que vous puissiez vraiment faire à ce sujet. La seule chose que vous pouvez faire est d'empêcher la validation complète de certains domaines. Vous n'avez pas besoin d'empêcher la validation de mailprovider.com, il vous suffit d'empêcher que [email protected] parvienne à valider l'intégralité du domaine mailprovider.com sur son nom.
Nzall le
ok mais je n'ai aucun moyen de savoir si un e-mail fait partie d'une entreprise ou d'un service de messagerie Web gratuit.
Fez Vrasta
1
Vous devrez maintenir une liste blanche pour cela, je le crains. une autre option est que chaque domaine doit être approuvé par un être humain. Je sais que cela complique la tâche des nouveaux candidats, mais une approbation ne doit avoir lieu qu'une seule fois. Ensuite, vous savez que ce domaine est approuvé et non un service de messagerie Web gratuit.
Nzall
0

Pourriez-vous vous permettre d'éviter l'utilisation de webmails gratuits pour l'inscription?

C'est ce que Brium ne: vous ne pouvez vous inscrire avec un @gmail.com, @live.com, etc e-mail - vous devez utiliser votre propre.

Et cela vous regroupe par cela.

Si vous ciblez des entreprises, cela devrait être une bonne façon de procéder.

Vous pourriez toujours avoir le problème de savoir qui est le patron (par exemple, l'administrateur de ce groupe), mais ce n'est peut-être pas si important - le patron devrait probablement avoir les outils pour dire à n'importe quel employé de lui transférer la propriété, à condition que quelqu'un enregistré auprès du patron.

mgarciaisaia
la source
3
Comment vérifieriez-vous qu'un domaine est un webmail gratuit? Il y en a au moins des centaines.
svick
J'écrivais
Voici un projet pas si actif qui en répertorie un tas: github.com/tarr11/Webmail-Domains . Est-il si important que l'un d'eux glisse? N'est-ce pas suffisant pour couvrir la grande majorité des utilisateurs (Gmail, Live, Yahoo, etc.)? Je ne sais pas ce que fait votre logiciel, mais - sera-t-il utile pour quelqu'un d'essayer d'éviter cette limitation? Le logiciel serait-il utile s'il est seul dans un groupe - ou sans ses collègues?
mgarciaisaia
Cela permettrait un accès de base aux informations téléchargées sur mon logiciel, donc avoir un utilisateur indésirable dans le mauvais groupe pourrait causer des problèmes. Soit dit en passant, cela pourrait être une solution car ce sera un problème pour le propriétaire des données s'il enregistre un domaine qui ne lui appartient pas ... Je pense
Fez Vrasta