Як перевірити певний домен належить користувачеві?


10

Я пишу програмне забезпечення, яке буде використовуватися здебільшого компаніями.

Тоді у мене виникла ідея дати компаніям можливість зареєструвати свій домен електронної пошти, щоб кожен користувач, який зареєструвався електронною поштою для вказаного домену, автоматично був включений до групи компаній.

Я знаю, що Slack робить щось подібне, і це працює, але є деякі проблеми ... наприклад, я щойно зареєстрував "live.it" (італійська версія Microsoft.com від Microsoft).

Я не можу просто припустити, що якщо користувач підтвердив електронну пошту з певним доменом, то безпечно розміщувати кожного користувача з однаковою доменною поштою в одній групі.

Наприклад, якщо я зареєструвався на me@gmail.com, я не хочу дозволяти користувачу реєструватися, щоб "gmail.com" мав власний домен.

Я хотів би уникати використання таких методів, як "поставити файл HTML у корінь домену" або "встановити запис TXT", тому мені було цікаво, як мені це зробити.


11
Чому прохання вставити файл у корінь домену є проблемою для вас? Google Tools для веб-майстрів робить саме це. Більше того, вам не потрібно запитувати постійний файл: користувач ставить його на сервер, ви робите перевірку, і файл можна видалити.
Арсеній Муренко

9
Якщо ваша установка настільки неправильна, що користувачі ззовні не можуть зайти на ваш головний веб-сайт, вас має турбувати налаштування та звинувачувати своїх системних адміністраторів, а не турбуватися, додаючи свій сайт до Інструментів Google для веб-майстрів і звинувачуючи Google.
Арсеній Муренко

1
Замість того, щоб дати їм спосіб, який працює і який вони вже багато разів використовували?
Арсеній Муренко

6
@FezVrasta: Майте на увазі, що у вас є дві цілі: дозволити доступ до авторизованих користувачів та заборонити доступ стороннім користувачам. Полегшення роботи авторизованих користувачів, як правило, полегшує і несанкціонованих користувачів.
MSalters

4
Якщо ви йдете маршрутом запису DNS, ви, ймовірно, повинні використовувати записи TXT, а не MX.
Аарон Дюфур

Відповіді:


20

Файл у кореневому каталозі

Не відкидайте можливість розміщення файлу у кореневому каталозі корпоративного веб-сайту. Це добре працює і широко використовується: Google Webmaster Tools - один із прикладів такої техніки. Це робить цей підхід привабливим: оскільки більшість користувачів це вже знають, вони не втратяться. Крім того, воно не вимагає ніяких технічних знань, на відміну від зміни записів MX (більшість малих компаній навіть не знають, що таке запис MX).

Щоб уникнути забруднення кореневого каталогу, вам слід попросити помістити файл лише під час перевірки. Після того як ви знайдете файл, користувач, можливо, зможе його видалити.

Зауважте, що користувачі, які не мають корпоративного веб-сайту, не зможуть отримати доступ до вашої послуги, але я не думаю, що в цьому випадку є багато клієнтів.

Зауважте, що:

  • Вам слід перевірити http://example.com/file та http://www.example.com/file , оскільки деякі веб-сайти налаштовані таким чином, що вони не підтримують http://example.com/ форму.

  • Ви можете також підтримувати HTTPS, враховуючи, що я не думаю, що існує багато компаній, які не перенаправляють з HTTP на HTTPS.

  • Ви не повинні приймати будь-які інші домени третього рівня, такі як http://mysite.example.com/ , оскільки це дасть можливість тому, хто придбав домени третього рівня, стверджувати, що він є власником домену другого рівня example.com .

Надсилання електронного листа

Надсилання електронного листа з таємним посиланням є досить проблематичним. Ви не можете зробити це на firstname.lastname@example.com, оскільки у даної людини може бути не вказана корпоративна електронна адреса (це часто трапляються стартапи, коли люди вважають за краще використовувати свою особисту адресу).

Використання електронних листів, таких як admin@example.com, у деяких випадках не працюватиме.

  • По-перше, завжди існують компанії, які не мають postmaster@example.com, admin@example.com тощо, але мають свої спеціальні "системні" адреси електронної пошти, яких ви не мали в списку. Розгляньте конкретно іноземні компанії; наприклад, у Франції незвично використовувати "Administrat eu r" замість "Administrator", у тому числі для адрес електронної пошти та імен облікових записів.

  • По-друге, багато малих компаній не мають доступу та не знають, як отримати доступ до своїх електронних листів. Вони навіть не знають, що у них є abuse@example.com, коли сотні термінових електронних листів чекають на їх відповідь.

    З цієї ж причини ви не можете базуватися на записах WHOIS для електронної адреси.


Що щодо надсилання електронних листів для перевірки таким користувачам, як "info @", "administrator @" "postmaster @"?
Фес Враста

@FezVrasta - адреси електронної пошти неймовірно легко підробити.
Одід

Я маю на увазі "Я надсилаю електронний лист на адресу info @ із посиланням на підтвердження всередині нього"
Fez Vrasta

6
@FezVrasta - домен може не мати жодних серверів електронної пошти, пов’язаних з ним, і якщо це станеться, немає гарантії, що info@на ньому буде визначена (або будь-яка локальна адреса) або що він буде мати відстежувану адресу загального вибору.
Oded

3
"зареєструйте свій домен електронної пошти, щоб кожен користувач, який реєструється електронною поштою для даного домену, буде автоматично розміщений у групі компаній." Вибачте, але в питанні з'ясовується, що ви можете припустити сервер електронної пошти. Ця альтернатива передбачає веб-сервер, який не є заданим.
MSalters

17

Постає питання: "Що означає володіти доменом електронної пошти?".

Володіння веб-сайтом визначається можливістю помістити файл у корінь . Звичайні користувачі можуть укласти файл, http://example.com/~user42/validation.txtале не ввімкнути його http://example.com/validation.txt.

Для електронної пошти такої ієрархії немає. Однак postmasterадреса особлива. (Зарезервовано за RFC2142 ) Ви не зможете створити postmaster@gmail.com. Таким чином, здатність створювати та / або отримувати доступ postmaster@є доказом необхідності володіння доменом електронної пошти.


1
Це особливість - частина специфікації, звичайний вбудований компонент серверів електронної пошти чи просто умова?
DougM

8
@DougM: Зарезервовано за RFC 2142
MSalters

Дякую, тому додатковими варіантами буде використання пошти @, дякую
Fez Vrasta

5
@MSalters: Ви повинні вказати цей RFC у своїй відповіді
Бергі,

1
Для багатьох поштових менеджерів @ домен просто не підходить потрібній людині чи комусь взагалі. Хоча технічно це може бути способом визначення права власності на домен, ви практично не можете цим скористатися.
JamesRyan

10

Бачачи у своїх коментарях, що ви, можливо, не віддаєте перевагу використовувати метод «файл-в-корінь» веб-сайту, альтернативою, яка може працювати - це

Підтвердьте право власності за допомогою WHOIS

Вам потрібно отримати запитуваний домен (наприклад stackexchange.com) та одну з електронних листів, перелічених у висновку WHOIS для цього домену . (Зверніть увагу, що це не працює для секретних / приватних реєстрацій, але якщо ваша аудиторія є корпораціями, це зазвичай не є проблемою)

Наприклад:

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: sysadmin-team@stackoverflow.com 
Admin Name: Sysadmin Team 
Admin Organization: Stack Exchange, Inc. 
...
Admin Email: sysadmin-team@stackoverflow.com 
Tech Name: Sysadmin Team 
...
Tech Email: sysadmin-team@stackoverflow.com 
Name Server: cf-dns02.stackexchange.com 
Name Server: cf-dns01.stackexchange.com 
DNSSEC: NotApplicable 

Ви можете навіть зробити whoisпошук інтерактивно та надати випадаючий список дійсних електронних листів (у цьому випадку просто sysadmin-team@stackoverflow.com). Потім ви надішлете код підтвердження / посилання на вибраний електронний лист.


Це робиться під час перевірки деяких ssl certs. Ймовірно, це не автоматичний підхід. Але зробив би непоганий вторинний варіант.
GrandmasterB

@GrandmasterB Я не бачу, чому це неможливо автоматизувати: хто шукає, збирає електронні листи, нехай користувач вибирає його, надсилає код перевірки електронною поштою.
Цифровий Кріс,

Я перевірив це з двома моїми найбільшими замовниками, і обидва не мають дійсного електронного листа у whois (один не має електронних листів, інший має електронну пошту технічної підтримки реєстратора домену ...
Fez Vrasta,

1
До речі, цей варіант можна додати як альтернативу.
Фес Враста

6

Попросіть своїх користувачів додати запис TXT до свого домену із посиланням на їх обліковий запис користувача на вашому веб-сайті (їх ім’я користувача, ідентифікатор або довільний маркер, сформований під час прохання користувача підтвердити свій домен).

Я пам’ятаю, що додав запис adn_verification=<my user name>у соціальній мережі, щоб відобразити мій домен як перевірений, і я подумав, що це досить акуратно і не вимагає, щоб ти домен вказував на веб-сервер.


Значна частина користувачів не знатиме, що таке запис TXT, а ті, хто знає, не обов'язково будуть достатньо обізнаними, щоб встановити його.
Арсеній Муренко

1
@MainMa це все-таки хороша функція для реалізації.

1
+1. Тільки тому, що у вас є домен, не означає, що на ньому працює веб-сервер (хоча в цьому конкретному випадку у компанії, ймовірно, завжди буде веб-сайт :)).
Метт,

FWIW, такий підхід використовує Microsoft, якщо вам потрібен користувацький домен для Office 365.
Кейсі,

2

Щоб додати пропозиції, які вже є на сторінці: я рекомендую надати користувачеві параметри, як він перевіряє свій домен. Інші пропозиції на сторінці цілком корисні, але іноді ви потрапляєте в ситуацію, коли хтось, хто хоче перевірити свій домен, має обмежений доступ до свого сервера або навіть до свого веб-сайту. Наприклад, ваш користувач може не в змозі додати записи домену або файли в корінь домену.

Наприклад, Troy Hunt дозволяє користувачам шукати весь домен у його базі даних про компрометовані облікові записи, але вам потрібно спочатку перевірити. Він дає користувачеві можливість вибору 4-х методів:

  1. Електронною поштою;
  2. через метатег;
  3. Завантаження файлу;
  4. запис TXT.

У всіх 4 цих випадках він вимагає від користувача ввести певне значення десь, проти чого він підтверджує.

Пояснення розміщено на веб- сайті http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .


дякую, але як працює перевірка електронної пошти? Як вони можуть завадити мені перевірити домен "gmail.com" або "hotmail.com"? (а ще краще, якийсь невідомий безкоштовний сервіс веб-пошти).
Фес Враста

Незалежно від того, що ви робите, якщо ви прямо не скажете "ці адреси НІКОЛИ не можуть бути підтверджені", завжди існує ймовірність того, що провайдер веб-пошти реєструє власний домен, і ви не можете насправді зробити це. Єдине, що ви можете зробити - це не допустити, щоб деякі домени були повністю перевірені. Вам не потрібно запобігати валідації mailprovider.com, потрібно просто запобігти тому, щоб joe.shmuck@mailprovider.com встиг перевірити весь домен mailprovider.com на його ім’я.
Nzall

Гаразд, але я не можу дізнатися, чи електронний лист є частиною компанії або безкоштовної послуги веб-пошти.
Фес Враста

1
Боюся, вам доведеться підтримувати білий список. Інший варіант полягає в тому, що кожну область повинна бути схвалена людиною. Я знаю, що це робить більш проблематичним для нових заявників, але схвалення має відбутися лише один раз. Згодом ви знаєте, що цей домен затверджений, а не безкоштовна послуга веб-пошти.
Nzall

0

Чи можете ви дозволити собі уникати використання безкоштовних веб-листів для реєстрації?

Ось що зації робить: ви не можете зареєструватися в с @gmail.com, @live.comі т.д. по електронній пошті - ви повинні використовувати свої власні.

І це кластеризує вас цим.

Якщо ви орієнтовані на бізнес, це має бути хорошим шляхом.

Ви все ще можете мати проблему дізнатися, хто такий начальник (скажімо, адміністратор цієї групи), але це може бути не так важливо - у начальника, мабуть, є інструменти, щоб повідомити будь-якого працівника про передачу йому права власності за умови, що хтось зареєстрований перед начальником.


3
Як би ви переконалися, що домен - це безкоштовна веб-пошта? Їх принаймні сотні.
svick

Я писав те саме :)
Fez Vrasta

Ось не настільки активний проект, який містить список їх: github.com/tarr11/Webmail-Domains . Є чи це , що критична , які мають одну з них ковзання? Чи недостатньо для охоплення значної більшості користувачів (Gmail, Live, Yahoo тощо)? Я не знаю, що робить ваше програмне забезпечення, але - чи буде комусь корисно спробувати уникнути цього обмеження? Чи було б програмне забезпечення корисним, якщо він один у групі - чи без колег?
mgarciaisaia

Це дозволить отримати базовий доступ до інформації, завантаженої на моє програмне забезпечення, щоб виникнення небажаного користувача в неправильній групі може спричинити проблеми. До речі, це може бути рішенням, тому що буде проблема власника даних, якщо він зареєструє домен не власний ... Я думаю
Fez Vrasta
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.