Bantu pengguna mengubah sandi secara mudah dengan menambahkan URL terkenal untuk mengubah sandi

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.

Fungsi Periksa sandi Chrome

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.
Bagaimana jika server menampilkan 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

Foto oleh Matthew Brodeur di Unsplash