Jak sprawdzić, czy dana domena jest własnością użytkownika?

10

Piszę oprogramowanie, z którego będą korzystać głównie firmy.

Potem wpadłem na pomysł, aby dać firmom sposób na zarejestrowanie swojej domeny e-mail, aby każdy użytkownik, który zarejestruje się przy użyciu adresu e-mail danej domeny, był automatycznie umieszczany w grupie firm.

Wiem, że Slack robi coś takiego i działa, ale są pewne problemy ... na przykład właśnie zarejestrowałem „live.it” (włoska wersja live.com firmy Microsoft).

Nie mogę po prostu założyć, że jeśli użytkownik zweryfikował wiadomość e-mail w określonej domenie, można bezpiecznie umieścić każdego użytkownika z tą samą domeną domena w tej samej grupie.

Na przykład, jeśli zarejestruję się pod adresem [email protected], nie chcę, aby użytkownik rejestrował „gmail.com” ma własną domenę.

Chciałbym unikać stosowania metod takich jak „włóż plik HTML do katalogu głównego domeny” lub „ustaw rekord TXT”, więc zastanawiałem się, jak to zrobić.

Fez Vrasta
źródło
11
Dlaczego prośba o umieszczenie pliku w katalogu głównym domeny jest dla Ciebie problemem? Narzędzia Google dla webmasterów właśnie to robią. Co więcej, nie musisz prosić o plik stały: użytkownik umieszcza go na serwerze, wykonujesz sprawdzenie, a plik można usunąć.
Arseni Mourzenko
9
Jeśli Twoja konfiguracja jest tak nieprawidłowa, że ​​użytkownicy z zewnątrz nie mogą dotrzeć do Twojej głównej witryny, powinieneś być zaniepokojony konfiguracją i winić swoich administratorów, zamiast dodawać swoją witrynę do Narzędzi Google dla webmasterów i obwiniać Google.
Arseni Mourzenko
1
Zamiast dać im sposób, który działa i z którego korzystali już wiele razy?
Arseni Mourzenko
6
@FezVrasta: Pamiętaj, że masz dwa cele: umożliwienie dostępu autoryzowanym użytkownikom i odmowa dostępu nieautoryzowanym użytkownikom. Ułatwienie dla autoryzowanych użytkowników zasadniczo ułatwia także nieautoryzowanym użytkownikom.
MSalters
4
Jeśli wybierzesz trasę rekordu DNS, prawdopodobnie powinieneś użyć rekordów TXT, a nie MX.
Aaron Dufour,

Odpowiedzi:

20

Plik w katalogu głównym

Nie odrzucaj możliwości umieszczenia pliku w katalogu głównym witryny korporacyjnej. Działa dobrze i jest szeroko stosowany: Narzędzia Google dla webmasterów są przykładem takiej techniki. To sprawia, że ​​takie podejście jest atrakcyjne: skoro większość użytkowników już o tym wie, nie zostaną utracone. Ponadto nie wymaga żadnej wiedzy technicznej, w przeciwieństwie do modyfikowania rekordów MX (większość małych firm nawet nie wie, co to jest rekord MX).

Aby uniknąć zanieczyszczenia katalogu głównego, należy poprosić o umieszczenie pliku tylko podczas sprawdzania. Po znalezieniu pliku użytkownik może go usunąć.

Pamiętaj, że użytkownicy, którzy nie mają firmowej witryny, nie będą mogli uzyskać dostępu do Twojej usługi, ale nie sądzę, aby w tym przypadku było wielu klientów.

Uwaga:

  • Należy sprawdzić zarówno http://example.com/file, jak i http://www.example.com/file , ponieważ niektóre witryny są skonfigurowane w sposób, który nie obsługuje formularza http://example.com/ .

  • Możesz również wspierać HTTPS, biorąc pod uwagę, że nie sądzę, że istnieje wiele firm bez przekierowania z HTTP na HTTPS.

  • Nie należy akceptować żadnych innych domen trzeciego poziomu, takich jak http://mojawitryna.przyklad.com/ , ponieważ umożliwi to osobie, która kupiła domeny trzeciego poziomu, twierdzenie, że jest właścicielem domeny drugiego poziomu przyklad.com .

Wysyłanie wiadomości e-mail

Wysłanie wiadomości e-mail z tajnym linkiem jest dość problematyczne. Nie możesz tego zrobić na imię[email protected], ponieważ dana osoba może nie mieć firmowego adresu e-mail (często tak jest w przypadku startupów, w których ludzie wolą używać swojego adresu osobistego).

Korzystanie z wiadomości e-mail, takich jak [email protected], nie działa w niektórych przypadkach.

  • Po pierwsze, zawsze są firmy, które nie mają [email protected], [email protected] itd., Ale mają swoje konkretne „systemowe” adresy e-mail, które nie zostały umieszczone na białej liście. Rozważ szczególnie firmy zagraniczne; na przykład we Francji nie jest niczym niezwykłym używanie „Administrat eu r” zamiast „Administrator”, w tym adresów e-mail i nazw kont.

  • Po drugie, wiele małych firm nie ma dostępu i nie wie, jak uzyskać dostęp do systemowych wiadomości e-mail. Płacą nawet nie wiedząc, że mają naduż[email protected] z setkami pilnych wiadomości e-mail czekających na odpowiedź.

    Z tego samego powodu nie możesz opierać się na rekordach WHOIS dotyczących adresu e-mail.

Arseni Mourzenko
źródło
Co z wysyłaniem e-maili weryfikacyjnych do użytkowników, takich jak „info @”, „administrator @” „postmaster @”?
Fez Vrasta
@FezVrasta - adresy e-mail są niezwykle łatwe do sfałszowania.
Oded
Mam na myśli „
Wysyłam
6
@FezVrasta - domena może nie być powiązana z żadnymi serwerami e-mail, a jeśli tak, nie ma gwarancji, że info@zostanie zdefiniowany (lub jakikolwiek adres lokalny) lub że będzie miał monitorowany adres typu catch-all.
Oded
3
„zarejestruj swoją domenę e-mail, aby każdy użytkownik, który zarejestruje się przy użyciu adresu e-mail danej domeny, automatycznie znalazł się w grupie firm.”. Przepraszamy, ale pytanie wyjaśnia, że możesz założyć serwer e-mail. Ta alternatywa zakłada serwer WWW, który nie jest podany.
MSalters
17

Powstaje pytanie: „Co to znaczy posiadać domenę e-mail?”.

Posiadanie strony internetowej jest definiowane przez możliwość umieszczenia pliku w katalogu głównym . Zwykli użytkownicy mogą być w stanie umieścić plik, http://example.com/~user42/validation.txtale go nie włączyć http://example.com/validation.txt.

W przypadku poczty e-mail nie ma takiej hierarchii. Jednak postmasteradres jest wyjątkowy. (Zarezerwowane zgodnie z RFC2142 ) Nie będzie można utworzyć [email protected]. Zatem możliwość tworzenia i / lub uzyskiwania dostępu postmaster@jest dowodem na posiadanie domeny e-mail.

MSalters
źródło
1
Czy ta specjalność jest częścią specyfikacji, wspólnego wbudowanego komponentu serwerów e-mail, czy tylko konwencją?
DougM
8
@DougM: Zarezerwowane zgodnie z RFC 2142
MSalters
Dziękuję, więc dodatkową opcją byłoby użycie postmaster @, dzięki
Fez Vrasta
5
@MSalters: Powinieneś umieścić ten RFC w swojej odpowiedzi
Bergi
1
Dla wielu postmaster @ domena po prostu nie trafia do właściwej osoby ani nikogo. Chociaż technicznie może to być sposób na określenie własności domeny, praktycznie nie można tego użyć.
JamesRyan
10

Widząc w swoich komentarzach, że nie wolisz używać metody file-in-root-of-website, alternatywą, która może działać, jest

Zweryfikuj własność za pomocą WHOIS

Potrzebne będzie żądanie domeny (na przykład stackexchange.com) i jeden z e-maili wymienionych w danych wyjściowych WHOIS dla tej domeny . (Pamiętaj, że to nie zadziała w przypadku tajnych / prywatnych rejestracji, ale jeśli twoją publicznością są korporacje, zwykle nie stanowi to problemu)

Na przykład:

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 

Możesz nawet przeprowadzić whoiswyszukiwanie interaktywnie i podać listę rozwijaną prawidłowych wiadomości e-mail (w tym przypadku tylko [email protected]). Następnie wyślesz kod weryfikacyjny / link do wybranego adresu e-mail.

Digital Chris
źródło
Jest to wykonywane podczas sprawdzania poprawności niektórych certyfikatów SSL. Prawdopodobnie nie jest to automatyczne podejście. Ale stanowiłoby dobrą opcję wtórną.
GrandmasterB
@GrandmasterB Nie rozumiem, dlaczego nie można go zautomatyzować: whois lookup, pomiń wiadomości e-mail, pozwól użytkownikowi wybrać jeden, wyślij kod weryfikacyjny w wiadomości e-mail.
Cyfrowy Chris
Testowałem w ten sposób z dwoma moimi największymi klientami i obaj nie mają prawidłowego adresu e-mail w whois (jeden nie ma e-maili, drugi ma e-mail wsparcia technicznego rejestrującego domenę ...
Fez Vrasta
1
Nawiasem mówiąc, ten można dodać jako alternatywę.
Fez Vrasta
6

Poproś użytkowników o dodanie rekordu TXT do swojej domeny wraz z odniesieniem do ich konta użytkownika w Twojej witrynie (nazwa użytkownika, identyfikator lub dowolny token wygenerowany, gdy użytkownik prosi użytkownika o zweryfikowanie swojej domeny).

Pamiętam, że dodałem rekord wywołany adn_verification=<my user name>w sieci społecznościowej, aby wyświetlić moją domenę jako zweryfikowaną, i pomyślałem, że to całkiem fajne i nie wymaga, aby domena wskazywała na serwer sieciowy.


źródło
Duża część użytkowników nie będzie wiedziała, co to jest rekord TXT, a ci, którzy wiedzą, niekoniecznie będą na tyle kompetentni, aby go ustawić.
Arseni Mourzenko
1
@MainMa to wciąż dobra funkcja do wdrożenia.
1
+1. To, że masz domenę, nie oznacza, że ​​masz na niej uruchomiony serwer WWW (chociaż w tym konkretnym przypadku firma prawdopodobnie zawsze będzie miała stronę internetową :)).
Matt
FWIW, takie podejście stosuje Microsoft, jeśli chcesz mieć niestandardową domenę dla Office 365.
Casey
2

Aby dodać do sugestii już na stronie: Polecam dać użytkownikom opcje, w jaki sposób sprawdza swoją domenę. Wszystkie pozostałe sugestie na stronie są doskonale użyteczne, ale czasami jesteś w sytuacji, gdy ktoś, kto chce zweryfikować swoją domenę, ma ograniczony dostęp do swojego serwera, a nawet strony internetowej. Na przykład użytkownik może nie być w stanie dodać rekordów domeny lub plików do katalogu głównego domeny.

Na przykład Troy Hunt pozwala użytkownikom wyszukiwać całą domenę w swojej bazie danych zainfekowanych kont, ale najpierw musisz to zweryfikować. Daje użytkownikowi wybór 4 metod:

  1. Poprzez e-mail;
  2. przez metatag;
  3. Przesyłanie pliku;
  4. rekord TXT.

We wszystkich 4 przypadkach wymaga od użytkownika wprowadzenia określonej wartości w miejscu, w którym weryfikuje.

Wyjaśnienie znajduje się na stronie http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .

Nzall
źródło
dzięki, ale jak działa weryfikacja adresu e-mail? Jak mogą uniemożliwić mi sprawdzenie domeny „gmail.com” lub „hotmail.com”? (lub lepiej, niektóre nieznane bezpłatne usługi poczty internetowej).
Fez Vrasta
Bez względu na to, co robisz, chyba że wyraźnie powiesz: „tych adresów NIGDY nie można zweryfikować”, zawsze istnieje szansa, że ​​dostawca poczty internetowej zarejestruje własną domenę i naprawdę niewiele możesz na to poradzić. Jedyne, co możesz zrobić, to uniemożliwić całkowitą walidację niektórych domen. Nie musisz uniemożliwiać sprawdzania poprawności adresu mailprovider.com, musisz tylko uniemożliwić temu [email protected] sprawdzenie poprawności całej domeny mailprovider.com pod jego nazwą.
Nzall,
ok, ale nie wiem, czy wiadomość e-mail jest częścią firmy, czy bezpłatnej usługi poczty internetowej.
Fez Vrasta
1
Obawiam się, że będziesz musiał do tego dodać białą listę. inną opcją jest to, że każda domena musi być zatwierdzona przez człowieka. Wiem, że sprawia to kłopot nowym kandydatom, ale zatwierdzenie musi nastąpić tylko raz. Następnie wiesz, że ta domena jest zatwierdzona, a nie bezpłatna usługa poczty internetowej.
Nzall,
0

Czy możesz pozwolić sobie na uniknięcie korzystania z bezpłatnych wiadomości e-mail do rejestracji?

To co Brium nie: nie można rejestrować-wz @gmail.com, @live.comitp e-mail - trzeba użyć własnego.

I to cię skupia.

Jeśli kierujesz reklamy do firm, powinna to być dobra droga.

Nadal możesz mieć problem ze stwierdzeniem, kto jest szefem (powiedzmy, adminem tej grupy), ale może to nie być tak ważne - szef powinien prawdopodobnie mieć narzędzia do nakazania każdemu pracownikowi przeniesienia własności na niego, pod warunkiem, że ktoś zarejestrowany przed szefem.

mgarciaisaia
źródło
3
Jak sprawdzisz, czy domena to darmowa poczta internetowa? Jest ich co najmniej setki.
svick,
Pisałem
Oto mało aktywny projekt, który wymienia kilka z nich: github.com/tarr11/Webmail-Domains . Czy to tak ważne, że któryś z nich się poślizgnął? Czy to nie wystarczy, aby objąć większość użytkowników (Gmail, Live, Yahoo i tym podobne)? Nie wiem, co robi twoje oprogramowanie, ale - czy ktoś będzie przydatny, aby ominąć to ograniczenie? Czy oprogramowanie byłoby przydatne, gdyby był sam w grupie - lub bez swoich kolegów?
mgarciaisaia
Umożliwiłoby to podstawowy dostęp do informacji przesłanych do mojego oprogramowania, więc niechciany użytkownik z niewłaściwej grupy może powodować problemy. Nawiasem mówiąc, może to być rozwiązanie, ponieważ będzie to problem właściciela danych, jeśli zarejestruje domenę niebędącą własnością ... Myślę
Fez Vrasta