Mengalihkan permintaan ke /.well-known/change-password
ke URL perubahan sandi
Tetapkan pengalihan dari /.well-known/change-password
ke halaman ubah sandi
situs Anda. Tindakan ini akan memungkinkan pengelola sandi mengarahkan pengguna
langsung ke halaman tersebut.
Pengantar
Seperti yang mungkin Anda ketahui, sandi bukanlah cara terbaik untuk mengelola akun. Untungnya, ada teknologi baru seperti WebAuthn dan teknik seperti sandi sekali pakai yang membantu kita lebih dekat ke dunia tanpa sandi. Namun, teknologi ini masih dalam pengembangan dan semuanya tidak akan berubah dengan cepat. Banyak developer masih perlu menangani sandi setidaknya selama beberapa tahun ke depan. Selagi menunggu teknologi dan teknik baru menjadi umum, setidaknya kita dapat membuat sandi lebih mudah digunakan.
Cara yang baik untuk melakukannya adalah dengan memberikan dukungan yang lebih baik untuk pengelola sandi.
Manfaat pengelola sandi
Pengelola sandi dapat terintegrasi di browser atau disediakan sebagai aplikasi pihak ketiga. Mereka dapat membantu pengguna dalam berbagai cara:
Isi otomatis sandi untuk kolom input yang benar: Beberapa browser dapat menemukan input yang benar secara heuristik meskipun situs tidak dioptimalkan untuk tujuan ini. Developer web dapat membantu pengelola sandi dengan menambahkan anotasi pada tag input HTML dengan benar.
Mencegah phishing: Karena pengelola sandi mengingat tempat sandi dicatat, sandi hanya dapat diisi otomatis di URL yang sesuai, dan bukan di situs phishing.
Buat sandi yang kuat dan unik: Karena sandi yang kuat dan unik dibuat dan disimpan langsung oleh pengelola sandi, pengguna tidak perlu mengingat satu karakter sandi.
Membuat dan mengisi otomatis sandi menggunakan pengelola sandi telah melayani web dengan baik, tetapi mengingat siklus prosesnya, memperbarui sandi setiap kali diperlukan sama pentingnya dengan membuat dan mengisi otomatis. Untuk memanfaatkannya dengan benar, pengelola sandi menambahkan fitur baru:
Mendeteksi sandi yang rentan dan menyarankan untuk memperbaruinya: Pengelola sandi dapat mendeteksi sandi yang digunakan kembali, menganalisis entropi dan kelemahannya, dan bahkan mendeteksi sandi yang berpotensi bocor atau yang diketahui tidak aman dari sumber seperti Have I Been Pwned.
Pengelola sandi dapat memperingatkan pengguna tentang sandi yang bermasalah, tetapi ada banyak hambatan dalam meminta pengguna untuk membuka halaman beranda ke halaman perubahan sandi, selain melalui proses sebenarnya untuk mengubah sandi (yang bervariasi dari satu situs ke situs lainnya). Akan jauh lebih mudah jika pengelola sandi dapat memandu pengguna langsung ke URL ubah sandi. Di sinilah URL yang dikenal untuk mengubah sandi menjadi berguna.
Dengan mencadangkan jalur URL yang dikenal yang mengalihkan pengguna ke halaman perubahan sandi, situs dapat dengan mudah mengalihkan pengguna ke tempat yang tepat untuk mengubah sandi mereka.
Menyiapkan "URL terkenal untuk mengubah sandi"
.well-known/change-password
diusulkan sebagai URL terkenal untuk mengubah
sandi. Yang perlu Anda lakukan adalah
mengonfigurasi server untuk mengalihkan permintaan .well-known/change-password
ke URL ubah sandi situs Anda.
Misalnya, situs Anda adalah https://example.com
dan URL
ganti sandi adalah https://example.com/settings/password
. Anda hanya perlu menetapkan
server untuk mengalihkan permintaan
https://example.com/.well-known/change-password
ke
https://example.com/settings/password
. Selesai. Untuk pengalihan, gunakan
kode status HTTP
302 Found
, 303 See
Other
, atau 307
Temporary Redirect
.
Atau, Anda dapat menayangkan HTML di URL .well-known/change-password
dengan tag <meta>
menggunakan http-equiv="refresh"
.
<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">
Buka kembali HTML halaman ubah sandi Anda
Tujuan fitur ini adalah untuk membantu siklus proses sandi pengguna menjadi lebih lancar. Anda dapat melakukan dua hal untuk memungkinkan pengguna memperbarui sandi mereka tanpa hambatan:
- Jika formulir ubah sandi Anda memerlukan sandi saat ini, tambahkan
autocomplete="current-password"
ke tag<input>
untuk membantu pengelola sandi mengisi otomatis. - Untuk kolom sandi baru (dalam banyak kasus, ada dua kolom untuk memastikan bahwa pengguna telah memasukkan sandi baru dengan benar), tambahkan
autocomplete="new-password"
ke tag<input>
untuk membantu pengelola sandi menyarankan sandi yang dibuat.
Pelajari lebih lanjut di Praktik terbaik formulir login.
Cara penggunaannya di dunia nyata
Contoh
Berkat implementasi Apple Safari, /.well-known/change-password
telah tersedia di beberapa situs besar untuk sementara waktu:
Coba sendiri dan lakukan hal yang sama untuk Anda.
Kompatibilitas browser
URL populer untuk mengubah sandi telah didukung di Safari sejak tahun 2019. Pengelola sandi Chrome mulai mendukungnya mulai versi 86 dan seterusnya (yang dijadwalkan untuk rilis Stabil pada akhir Oktober 2020), dan browser berbasis Chromium lainnya mungkin akan mengikutinya. Firefox menganggapnya sebagai fitur yang layak diterapkan, tetapi belum memberikan sinyal bahwa mereka berencana untuk melakukannya mulai Agustus 2020.
Perilaku pengelola sandi Chrome
Mari kita lihat cara pengelola sandi Chrome memperlakukan sandi yang rentan.
Pengelola sandi Chrome dapat memeriksa sandi yang bocor. Dengan membuka
about://settings/passwords
, pengguna dapat menjalankan Periksa sandi terhadap sandi
yang disimpan, dan melihat daftar sandi yang direkomendasikan untuk diperbarui.
Dengan mengklik tombol Change password di samping sandi yang direkomendasikan untuk diupdate, browser akan:
- Buka halaman ubah sandi situs jika
/.well-known/change-password
disiapkan dengan benar. - Buka halaman beranda situs jika
/.well-known/change-password
tidak disiapkan dan Google tidak mengetahui penggantian.
200 OK
meskipun /.well-known/change-password
tidak ada?Pengelola sandi mencoba menentukan apakah situs mendukung URL umum untuk
mengubah sandi dengan mengirimkan permintaan ke /.well-known/change-password
sebelum
benar-benar meneruskan pengguna ke URL ini. Jika permintaan menampilkan 404 Not Found
,
jelas bahwa URL tidak tersedia, tetapi respons 200 OK
tidak
selalu berarti bahwa URL tersedia, karena ada beberapa kasus ekstrem:
- Situs rendering sisi server menampilkan "Tidak ditemukan" jika tidak ada konten, tetapi dengan
200 OK
. - Situs rendering sisi server merespons dengan
200 OK
saat tidak ada konten setelah melakukan pengalihan ke halaman "Tidak ditemukan". - Aplikasi web responsif merespons dengan shell dengan
200 OK
dan merender halaman "Tidak ditemukan" di sisi klien jika tidak ada konten.
Untuk kasus ekstrem ini, pengguna akan dialihkan ke halaman "Tidak Ditemukan" dan hal ini akan menjadi sumber kebingungan.
Itulah sebabnya ada mekanisme standar
yang diusulkan
untuk menentukan apakah server dikonfigurasi untuk merespons dengan 404 Not Found
saat benar-benar tidak ada konten, dengan meminta halaman acak. Sebenarnya, URL tersebut juga dicadangkan: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200
.
Misalnya, Chrome menggunakan jalur URL ini untuk menentukan apakah dapat mengharapkan
URL ubah sandi yang tepat dari /.well-known/change-password
terlebih dahulu.
Saat Anda men-deploy /.well-known/change-password
, pastikan server menampilkan 404 Not Found
untuk konten yang tidak ada.
Masukan
Jika Anda memiliki masukan tentang spesifikasi, ajukan masalah ke repositori spec.
Resource
- URL yang Terkenal untuk Mengubah Sandi
- Mendeteksi keandalan kode status HTTP
- Praktik terbaik formulir login
Foto oleh Matthew Brodeur di Unsplash