Have I Been Pwned 2.0 Diluncurkan
(troyhunt.com)- Rebranding HIBP yang telah lama dipersiapkan kini benar-benar beralih ke layanan produksi, disertai pembangunan ulang total situs web dan pembaruan fitur di hampir semua halaman
- Pencarian utama meningkatkan pengalaman hasil, tetapi menghapus pencarian username dan phone number dari situs web, sementara kompatibilitas API yang ada tetap dipertahankan
- Halaman baru per insiden kebocoran membuat hasil pencarian tidak terlalu rumit, dan memisahkan panduan tindakan konkret yang dapat dilakukan pengguna setelah insiden ke layar tersendiri
- Fitur yang memerlukan verifikasi akses email digabungkan ke dalam dashboard berbasis Sign In, dan domain search bekerja lebih cepat dengan JSON API serta filtering di sisi klien
- Stack teknologinya dirapikan dengan fokus pada Azure, Cloudflare, .NET 9.0, Bootstrap, dan TypeScript; Google reCAPTCHA dihapus dan hanya Cloudflare Turnstile yang digunakan
Situs web baru dan pengalaman pencarian
- Situs web Have I Been Pwned yang baru telah diluncurkan
- Commit pertama untuk pekerjaan rebranding di repositori publik dilakukan pada Februari 2024
- Brand baru diluncurkan secara soft launch pada Maret 2025
- Rilis ini mencakup pembangunan ulang total situs web, perubahan fitur di hampir semua halaman, penambahan fitur baru, dan peluncuran toko merchandise
- Kotak pencarian utama tetap mempertahankan fitur khas HIBP, tetapi mengubah cara hasil ditampilkan
- Sebagian pengguna akan melihat respons ucapan selamat dan animasi confetti
- Jika kebocoran terkonfirmasi, situs menampilkan respons merah yang lebih tenang
- Hasil ditampilkan dalam bentuk timeline yang dapat digulir, dengan urutan kronologis terbalik, serta menyediakan ringkasan tiap kebocoran
- Dukungan untuk username dan phone number dihapus dari pencarian situs web
- Pencarian username diperkenalkan pada 2014 untuk insiden Snapchat
- Pencarian phone number diperkenalkan pada 2021 untuk insiden Facebook
- Kedua jenis data tersebut tidak pernah dimuat selain untuk dua kasus itu
- Username sulit dikaitkan dengan pemilik tertentu, dan phone number sulit di-parse karena perbedaan format internasional dan cara penulisan
- Notifikasi SMS jauh lebih mahal dibanding email
- Dengan mengizinkan input ini di situs lama, muncul kebingungan seperti “mengapa nomor saya tidak ada di kebocoran tertentu” serta beban dukungan
- API akan tetap mendukungnya demi kompatibilitas, tetapi dinyatakan agar tidak mengharapkan adanya data tambahan
Halaman khusus per kebocoran
- Breach page baru memisahkan informasi detail per kebocoran ke layar tersendiri untuk mengurangi masalah hasil pencarian utama yang terlalu rumit
- Contohnya adalah Ashley Madison breach page
- Informasi yang sudah ada ditampilkan dengan cara yang lebih ramah pengguna
- Perubahan utama halaman ini adalah memberi panduan yang lebih konkret tentang tindakan yang dapat diambil pengguna setelah kebocoran
- Fokusnya pada apa yang harus dilakukan pengguna yang terdampak kebocoran
- Ini juga mencakup arah untuk menghubungkan pengguna ke layanan mitra seperti identity protection provider
- Ada rencana untuk semakin memperkaya data kebocoran dan data per pengguna ke depannya
- Jika layanan terkait mendukung 2FA, hal itu akan ditampilkan secara spesifik alih-alih panduan umum
- Passkey juga akan ditambahkan sebagai bagian tersendiri
- Dalam diskusi dengan NCSC Inggris, dibahas panduan kebocoran data yang dilokalkan, yang menampilkan logo NCSC dan resource panduan terkait bagi pengguna di Inggris
Dashboard terpadu dan domain search
- Seiring bertambahnya fitur yang memerlukan konfirmasi akses ke alamat email selama bertahun-tahun, semuanya digabungkan ke dalam satu central dashboard
- Pada insiden Ashley Madison 2015, konsep sensitive breach diperkenalkan sehingga diperlukan konfirmasi melalui penerimaan email
- Pada 2019, lapisan autentikasi ditambahkan ke API untuk mengurangi penyalahgunaan API, dan verifikasi email diwajibkan sebelum membeli API key
- Setelah itu ditambahkan domain search dashboard, pengelolaan langganan berbayar, dan pencarian stealer logs
- Dashboard baru memverifikasi akses ke alamat email di balik satu Sign In, lalu menampilkan fitur terkait
- Fitur untuk publik dan fitur berorientasi bisnis sama-sama masuk di dalamnya
- Ada rencana menambahkan dukungan passkey agar pengguna dapat login tanpa pengiriman email di masa depan
- Fitur untuk mendaftarkan alamat email anggota keluarga ke langganan notifikasi, tetapi menerima notifikasi di alamat lain, juga dibahas sebagai contoh yang cocok untuk dashboard
- Banyak perapian layar dan peningkatan filtering masuk ke domain search
- Daftar domain terverifikasi menjadi lebih rapi
- Hasil pencarian menyediakan ringkasan yang lebih jelas
- Ditambahkan filtering per alamat email dan filter “lihat hanya latest breach”
- Dashboard domain search menerima JSON dari API dan seluruh dashboard bekerja seperti aplikasi satu halaman
- Filtering dilakukan di sisi klien terhadap seluruh JSON domain search
- Telah diuji dapat berjalan bahkan pada domain dengan lebih dari 250 ribu alamat email yang terdampak kebocoran
- Namun, untuk data berskala seperti itu, lebih tepat menerimanya melalui API daripada menggulirnya di browser
- Verifikasi kepemilikan domain juga ditulis ulang sepenuhnya
- Antarmukanya berubah menjadi lebih rapi dan sederhana
- Metode verifikasi selain email masih perlu dibuat lebih mulus
Dokumentasi API dan toko merchandise
- API itu sendiri tidak berubah
- Pembaruan ini tidak membuat perubahan yang merusak kompatibilitas
- Pengguna API yang ada tidak akan mengalami bagian yang rusak
- Dokumentasi API belum dapat dialihkan ke pendekatan baru dan tetap mempertahankan dokumentasi lama
- Di repo GitHub UX rebuild sempat ada diskusi tentang cara mendokumentasikan API, dan konsensus umumnya adalah OpenAPI
- Pekerjaan menggunakan Scalar telah dilakukan dan dapat dilihat di haveibeenpwned.com/scalar
- Scalar menyediakan contoh dalam berbagai bahasa dan test runner di dalam browser
- Karena tidak selesai dalam jadwal peluncuran besar, dokumentasi API lama dipertahankan dengan penyesuaian ke gaya situs baru
- Jika nanti ada kelonggaran waktu, rencananya akan beralih ke implementasi Scalar
- Toko merchandise HIBP dibuka di merch.haveibeenpwned.com
- Dioperasikan melalui Teespring
- Semua produk dijual dengan harga modal dan tidak mengambil keuntungan
- Ini disiapkan sebagai eksperimen menyenangkan untuk komunitas
- Untuk stiker, opsi Teespring tidak memenuhi kualitas Sticker Mule yang sudah ada, sehingga Sticker Mule store tetap digunakan
- Open source artwork juga tersedia, sehingga pengguna dapat mencetak sendiri di tempat yang diinginkan
Stack teknologi dan performa
- Layanan sumber tetap berjalan di Microsoft Azure
- Situs web menggunakan App Service
- Sebagian besar API menggunakan serverless Functions
- Menggunakan fitur storage account seperti SQL Azure Hyperscale, queues, blobs, dan tables
- Kodenya sebagian besar C#, dengan .NET 9.0 dan ASP.NET MVC on .NET Core
- Cloudflare juga tetap memegang peran besar
- Banyak kode berada di Workers
- Data berada di R2 storage
- Menggunakan fitur WAF dan caching
- Untuk anti-automation hanya menggunakan Cloudflare Turnstile, dan Google reCAPTCHA dihapus sepenuhnya
- Frontend menggunakan generasi terbaru Bootstrap, SASS, dan TypeScript
- CSS ditulis dengan SASS
- JavaScript ditulis dengan TypeScript
- Performa situs web juga menunjukkan peningkatan yang terukur
- Berdasarkan pengujian Pingdom, ukuran halaman dikurangi 28%
- Jumlah request dikurangi 31%
- Waktu muat terlalu bervariasi sehingga tidak disimpulkan ada perbedaan besar
- Ditekankan bahwa bahkan setelah 11 tahun, ukuran halaman web dan jumlah request masih dapat dikurangi dengan persentase dua digit
- Tidak ada elemen yang dapat dianggap sebagai beban tracking atau iklan
- Statistik traffic nyata didasarkan pada traffic yang melewati Cloudflare edge node
- Product placement 1Password hanya berupa teks dan gambar
- Outbound click juga tidak dilacak
- Diskusi product placement dengan perusahaan identity theft yang mengharapkan angka tracking invasif menjadi lebih sulit
Pemanfaatan AI dalam proses pengembangan
- ChatGPT digunakan secara luas dalam proses pembangunan ulang, terutama selama beberapa hari terakhir
- Dimanfaatkan untuk menemukan ikon yang sesuai dengan heading “Index” di Bootstrap icons
- Dipakai untuk menemukan ikon yang tepat dari lebih dari 2.000 ikon dalam sekitar 30 detik
- AI juga digunakan untuk memeriksa migrasi situs
- Diminta menulis PowerShell script untuk melakukan crawl
haveibeenpwned.comdan menampilkan URL unik - Diminta menulis script untuk memeriksa apakah path yang ditemukan ada di
stage.haveibeenpwned.com - Membantu menemukan file
security.txtyang hilang - AI juga menemukan item yang tidak pernah ada, sehingga tetap diperlukan sikap “trust, but verify”
- Diminta menulis PowerShell script untuk melakukan crawl
- Juga dimanfaatkan untuk tugas kecil seperti saran CSS, pengaturan Cloudflare rule, dan keunikan web app .NET Core
- Tingkat jawaban yang benar dinilai sekitar 90%
- Penilaiannya sangat positif, sampai mengatakan bahwa jika tidak memakai AI secara aktif dalam pengembangan software, maka itu adalah pendekatan yang keliru
Peluncuran dan isu Turnstile
- Situs baru dideploy pada Minggu dini hari menurut waktu penulis
- Hampir semuanya berjalan baik, dan satu-dua glitch kecil segera diperbaiki lalu dideploy
- Tulisan dipublikasikan 2 hari setelah live agar masalah dapat terlebih dahulu dibereskan semaksimal mungkin
- Selama periode itu, lebih dari 12 rilis baru dideploy sambil melakukan iterasi cepat
- Perubahan kecil seperti syarat layanan dan kebijakan privasi juga memakan banyak waktu
- Diperlukan pembaruan kecil pada cara pemrosesan data serta penyesuaian untuk layanan baru seperti stealer logs
- Pekerjaan dengan pengacara memakan beberapa jam dan ribuan dolar
- Cloudflare Turnstile adalah metode anti-automation yang tidak meneruskan traffic ke Google seperti Google reCAPTCHA
- Dapat diimplementasikan sepenuhnya tanpa terlihat
- Script Cloudflare di browser membuat challenge, lalu challenge itu dikirim bersama HTTP request dan diverifikasi di sisi server
- Di HIBP, ini sudah diterapkan dalam suatu bentuk sejak 2023
- Di tempat yang penting untuk memblokir bot, seperti form yang mengirim email, jika Turnstile gagal maka pengguna diberi instruksi untuk mencoba lagi atau me-refresh halaman
- Sering kali masalah terselesaikan dengan klik kedua atau reload halaman
- Jika tidak terselesaikan, implementasi Turnstile widget yang lebih terlihat dan memerlukan interaksi pengguna perlu dipertimbangkan
- Turnstile juga digunakan secara penting di halaman pencarian utama
- Request dikirim secara asinkron ke API endpoint bersama challenge token
- Jika challenge gagal dan endpoint HIBP mengembalikan HTTP 401 serta
Invalid Turnstile token, sistem seharusnya fallback ke full page post - Saat peluncuran awal situs baru, fallback ini belum berfungsi, tetapi kemudian diperbaiki
- Pada full page post, Cloudflare managed challenge ditampilkan; lebih invasif, tetapi lebih andal
- Berdasarkan statistik Cloudflare, sekitar 82% challenge yang diterbitkan berhasil diselesaikan
- Dari 18% yang tidak terselesaikan, banyak yang mungkin adalah bot yang diblokir sesuai tujuan Turnstile
- Request dari manusia sungguhan yang terblokir kemungkinan berada di kisaran persentase satu digit, dan perlu terus dicari cara untuk menurunkan angka ini
Belum ada komentar.