Bagaimana cara memvalidasi domain yang diberikan dimiliki oleh pengguna?

10

Saya sedang menulis perangkat lunak yang sebagian besar akan digunakan oleh perusahaan.

Saya kemudian memiliki ide untuk memberi perusahaan cara untuk mendaftarkan domain email mereka sehingga setiap pengguna yang mendaftar dengan email dari domain yang diberikan akan secara otomatis dimasukkan ke dalam grup perusahaan.

Saya tahu Slack melakukan sesuatu seperti ini dan berfungsi, tetapi ada beberapa masalah ... misalnya saya baru saja mendaftarkan "live.it" (versi Italia live.com oleh Microsoft).

Saya tidak bisa berasumsi bahwa jika pengguna telah memvalidasi email dengan domain tertentu maka aman untuk menempatkan setiap pengguna dengan domain_mail yang sama dalam grup yang sama.

Misalnya, jika saya mendaftar dengan [email protected] saya tidak ingin membiarkan pengguna mendaftar "gmail.com" memiliki domain sendiri.

Saya ingin menghindari penggunaan metode seperti "meletakkan file html di root domain" atau "mengatur catatan TXT" jadi saya bertanya-tanya bagaimana yang harus saya lakukan.

Fez Vrasta
sumber
11
Mengapa meminta untuk meletakkan file di root domain merupakan masalah bagi Anda? Google Webmaster Tools melakukan hal itu. Selain itu, Anda tidak perlu meminta file permanen: pengguna meletakkannya di server, Anda melakukan pemeriksaan, dan file tersebut dapat dihapus.
Arseni Mourzenko
9
Jika pengaturan Anda sangat salah sehingga pengguna dari luar tidak dapat mencapai situs web utama Anda, Anda harus khawatir dengan pengaturan dan menyalahkan sysadmin Anda, daripada khawatir dengan menambahkan situs Anda ke Google Webmaster Tools dan menyalahkan Google.
Arseni Mourzenko
1
Alih-alih memberi mereka cara yang berhasil dan yang sudah sering mereka gunakan sebelumnya?
Arseni Mourzenko
6
@FezVrasta: Ingatlah bahwa Anda memiliki dua tujuan: memungkinkan akses ke pengguna yang sah dan menolak akses ke pengguna yang tidak sah. Mempermudah pengguna resmi umumnya juga memudahkan pengguna yang tidak sah.
MSalters
4
Jika Anda memilih rute record DNS, Anda mungkin harus menggunakan data TXT, bukan MX.
Aaron Dufour

Jawaban:

20

File di direktori root

Jangan abaikan kemungkinan menempatkan file di direktori root situs web perusahaan. Ini berfungsi dengan baik dan banyak digunakan: Alat Webmaster Google adalah salah satu contoh dari teknik tersebut. Ini membuat pendekatan ini menarik: karena sebagian besar pengguna sudah mengetahuinya, mereka tidak akan hilang. Juga, itu tidak memerlukan pengetahuan teknis, tidak seperti memodifikasi catatan MX (sebagian besar perusahaan kecil bahkan tidak tahu apa itu MX record).

Untuk menghindari mencemari direktori root, Anda harus meminta untuk meletakkan file hanya ketika melakukan pemeriksaan Anda. Setelah Anda menemukan file, pengguna mungkin dapat menghapusnya.

Perhatikan bahwa pengguna yang tidak memiliki situs web perusahaan tidak akan dapat mengakses layanan Anda, tetapi saya rasa tidak ada banyak pelanggan dalam hal ini.

Perhatikan bahwa:

  • Anda harus memeriksa http://example.com/file dan http://www.example.com/file , karena beberapa situs web dikonfigurasi dengan cara yang tidak mendukung formulir http://example.com/ .

  • Anda dapat mendukung HTTPS juga, mengingat saya tidak berpikir ada banyak perusahaan tanpa pengalihan dari HTTP ke HTTPS.

  • Anda tidak boleh menerima domain tingkat ketiga lainnya seperti http://mysite.example.com/ , karena ini akan memungkinkan seseorang yang membeli domain tingkat ketiga untuk mengklaim bahwa ia adalah pemilik domain tingkat kedua example.com .

Mengirim email

Mengirim e-mail dengan tautan rahasia agak bermasalah. Anda tidak dapat melakukannya ke [email protected], karena orang yang diberikan mungkin tidak memiliki alamat email perusahaan (ini sering terjadi pada startup, di mana orang lebih suka menggunakan alamat pribadi mereka).

Menggunakan e-mail seperti [email protected] tidak akan berfungsi dalam beberapa kasus.

  • Pertama, selalu ada perusahaan yang tidak memiliki [email protected], [email protected] dll., Tetapi memiliki alamat e-mail "sistem" khusus yang belum masuk daftar putih. Pertimbangkan secara khusus perusahaan asing; misalnya, di Prancis, tidak biasa menggunakan "Administrat eu r" daripada "Administrator", termasuk untuk alamat email dan nama akun.

  • Kedua, banyak perusahaan kecil yang tidak mengakses dan tidak tahu cara mengakses email sistem mereka. Mereka membayar bahkan tidak tahu mereka memiliki [email protected] dengan ratusan email mendesak menunggu balasan mereka.

    Untuk alasan yang sama, Anda tidak dapat mendasarkan diri pada catatan WHOIS untuk alamat email.

Arseni Mourzenko
sumber
Bagaimana dengan mengirim email validasi ke pengguna seperti "info @", "administrator @" "postmaster @"?
Fez Vrasta
@FezVrasta - alamat email sangat mudah dipalsukan.
Oded
Maksud saya "Saya mengirim email ke info @ dengan tautan konfirmasi di dalamnya"
Fez Vrasta
6
@FezVrasta - domain mungkin tidak memiliki server email apa pun yang terkait dengannya, dan jika ya, tidak ada jaminan bahwa info@(atau alamat lokal apa pun) akan ditentukan di atasnya, atau bahwa domain itu akan memiliki alamat tampung semua-yang dipantau.
Oded
3
+ msgstr "daftarkan domain email mereka sehingga setiap pengguna yang mendaftar dengan email dari domain yang diberikan akan secara otomatis dimasukkan ke dalam grup perusahaan." Maaf, tetapi pertanyaannya memperjelas bahwa Anda dapat menganggap server email. Alternatif ini mengasumsikan server web, yang tidak diberikan.
MSalters
17

Pertanyaannya berlaku: "Apa artinya memiliki domain email?".

Memiliki situs web ditentukan oleh kemampuan untuk meletakkan file di root . Pengguna biasa mungkin dapat menempatkan file http://example.com/~user42/validation.txttetapi tidak aktif http://example.com/validation.txt.

Untuk email, tidak ada hierarki seperti itu. Namun, postmasteralamatnya spesial. (Dicadangkan per RFC2142 ) Anda tidak akan dapat membuat [email protected]. Dengan demikian, kemampuan untuk membuat dan / atau mengakses postmaster@adalah bukti yang Anda butuhkan untuk kepemilikan domain email.

MSalters
sumber
1
Apakah itu bagian khusus dari spesifikasi, komponen bawaan dari server email, atau hanya sebuah konvensi?
DougM
8
@DougM: Dicadangkan per RFC 2142
MSalters
Terima kasih, jadi opsi tambahan adalah penggunaan postmaster @, terima kasih
Fez Vrasta
5
@MSalters: Anda harus memasukkan RFC itu dalam jawaban Anda
Bergi
1
Bagi banyak postmaster @ domain tidak pergi ke orang yang tepat atau siapa pun. Meskipun secara teknis mungkin merupakan cara untuk menentukan kepemilikan domain, Anda tidak bisa menggunakan ini secara praktis.
JamesRyan
10

Melihat dalam komentar Anda bahwa Anda mungkin tidak memilih untuk menggunakan metode file-in-root-of-situs web, alternatif yang mungkin berhasil adalah dengan

Verifikasi kepemilikan menggunakan WHOIS

Anda perlu mendapatkan domain yang diminta (misalnya stackexchange.com), dan salah satu email yang tercantum dalam output WHOIS untuk domain itu . (Perhatikan bahwa ini tidak akan berfungsi untuk pendaftaran rahasia / pribadi, tetapi jika audiens Anda adalah perusahaan, biasanya ini bukan masalah)

Sebagai contoh:

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 

Anda bahkan dapat melakukan whoispencarian secara interaktif dan memberikan daftar dropdown dari email yang valid (dalam hal ini, adil [email protected]). Anda kemudian akan mengirim kode verifikasi / tautan ke email yang dipilih.

Digital Chris
sumber
Inilah yang dilakukan ketika memvalidasi sertifikat ssl tertentu. Sepertinya bukan pendekatan otomatis. Tetapi akan membuat pilihan sekunder yang baik.
GrandmasterB
@ GrandmasterB Saya tidak mengerti mengapa itu tidak bisa otomatis: pencarian whois, ambil email, biarkan pengguna memilih satu, kirim kode validasi dalam email.
Digital Chris
Saya telah menguji cara ini dengan dua pelanggan terbesar saya dan keduanya tidak memiliki email yang valid di whois (satu tidak memiliki email, yang lain memiliki email tentang dukungan teknis dari pendaftar domain ...
Fez Vrasta
1
Ngomong-ngomong ini bisa ditambahkan sebagai alternatif.
Fez Vrasta
6

Minta pengguna Anda untuk menambahkan data TXT ke domain mereka dengan referensi ke akun pengguna mereka di situs Anda (nama pengguna, ID, atau token sewenang-wenang yang dihasilkan saat meminta pengguna untuk memverifikasi domain mereka).

Saya ingat menambahkan catatan yang dipanggil adn_verification=<my user name>di jejaring sosial untuk menampilkan domain saya sebagai diverifikasi, dan saya pikir itu cukup rapi dan tidak mengharuskan Anda mengarahkan domain ke server web.


sumber
Sebagian besar pengguna tidak akan tahu apa itu TXT record, dan mereka yang tahu tidak akan cukup berpengetahuan untuk mengaturnya.
Arseni Mourzenko
1
@ MainMa ini masih merupakan fitur yang bagus untuk diterapkan.
1
+1. Hanya karena Anda memiliki domain, bukan berarti Anda memiliki server web yang menjalankannya (walaupun dalam contoh khusus ini, sebuah perusahaan mungkin akan selalu memiliki situs web :)).
Mat
FWIW, ini adalah pendekatan yang digunakan Microsoft jika Anda ingin domain kustom untuk Office 365.
Casey
2

Untuk menambahkan saran yang sudah ada di halaman: Saya sarankan untuk memberikan opsi kepada pengguna tentang bagaimana dia memvalidasi domainnya. Saran lain pada halaman semuanya dapat digunakan dengan sempurna, tetapi kadang-kadang Anda berada dalam situasi di mana seseorang yang ingin memverifikasi domain mereka hanya memiliki akses terbatas ke server mereka atau bahkan situs web mereka. Misalnya, pengguna Anda mungkin tidak dapat menambahkan catatan domain atau file di root domain.

Misalnya, Troy Hunt memungkinkan pengguna untuk mencari seluruh domain dalam database akun yang disusupi, tetapi Anda harus memverifikasi terlebih dahulu. Ia memberi pengguna pilihan 4 metode:

  1. Melalui email;
  2. melalui tag meta;
  3. Unggah file;
  4. catatan TXT.

Dalam semua 4 kasus ini, ia mengharuskan pengguna untuk memasukkan nilai tertentu di suatu tempat yang ia verifikasi.

Penjelasannya ada di http://www.troyhunt.com/2014/01/im-pwned-youre-pwned-were-all-pwned.html .

Nzall
sumber
terima kasih tetapi bagaimana verifikasi email bekerja? Bagaimana cara mereka mencegah saya memvalidasi domain "gmail.com" atau "hotmail.com"? (atau lebih baik, beberapa layanan webmail gratis tidak dikenal).
Fez Vrasta
Apa pun yang Anda lakukan, kecuali jika Anda secara eksplisit mengatakan "alamat ini TIDAK PERNAH divalidasi", selalu ada kemungkinan bahwa penyedia webmail mendaftarkan domain mereka sendiri, dan tidak banyak yang dapat Anda lakukan mengenai hal itu. Satu-satunya hal yang dapat Anda lakukan adalah mencegah sebagian domain tidak divalidasi sepenuhnya. Anda tidak perlu mencegah validasi mailprovider.com, Anda hanya perlu mencegah [email protected] mengelola untuk memvalidasi seluruh domain mailprovider.com atas namanya.
Nzall
ok tapi saya tidak tahu apakah email itu bagian dari perusahaan atau layanan webmail gratis.
Fez Vrasta
1
Anda harus mempertahankan daftar putih untuk itu, saya khawatir. Pilihan lain adalah bahwa setiap domain harus disetujui oleh manusia. Saya tahu ini membuatnya lebih merepotkan bagi pelamar baru, tetapi persetujuan hanya perlu terjadi sekali. Setelah itu, Anda tahu bahwa domain itu disetujui dan bukan layanan email web gratis.
Nzall
0

Bisakah Anda menghindari penggunaan webmail gratis untuk pendaftaran?

Yang ini apa Brium tidak: Anda tidak dapat masuk dengan @gmail.com, @live.com, dll e-mail - Anda harus menggunakan Anda sendiri.

Dan ini mengelompokkan Anda dengan ini.

Jika Anda menargetkan bisnis, itu harus menjadi cara yang baik untuk pergi.

Anda mungkin masih memiliki masalah untuk mengetahui siapa bosnya (katakanlah, admin grup itu), tetapi mungkin tidak terlalu penting - bos mungkin harus memiliki alat untuk memberi tahu karyawan mana pun untuk mentransfer kepemilikan kepadanya, asalkan seseorang terdaftar sebelum bos.

mgarciaisaia
sumber
3
Bagaimana Anda memeriksa bahwa suatu domain adalah webmail gratis? Setidaknya ada ratusan.
svick
Saya menulis hal yang sama :)
Fez Vrasta
Berikut ini adalah proyek yang tidak terlalu aktif yang mendaftar banyak dari mereka: github.com/tarr11/Webmail-Domains . Apakah yang penting memiliki salah satu dari mereka tergelincir? Apakah itu tidak cukup untuk mencakup sebagian besar pengguna (Gmail, Live, Yahoo, dan sejenisnya)? Saya tidak tahu apa yang dilakukan perangkat lunak Anda, tetapi - apakah akan berguna bagi seseorang untuk mencoba menghindari batasan ini? Apakah perangkat lunak akan berguna jika dia sendirian dalam kelompok - atau tanpa rekan-rekannya?
mgarciaisaia
Ini akan memungkinkan akses dasar ke informasi yang diunggah ke perangkat lunak saya sehingga memiliki beberapa pengguna yang tidak diinginkan dalam kelompok yang salah dapat menyebabkan masalah. By the way itu bisa menjadi solusi karena akan menjadi masalah pemilik data jika dia mendaftarkan domain tidak sendiri ... Saya pikir
Fez Vrasta