2 poin oleh GN⁺ 2025-05-20 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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
  • 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.com dan menampilkan URL unik
    • Diminta menulis script untuk memeriksa apakah path yang ditemukan ada di stage.haveibeenpwned.com
    • Membantu menemukan file security.txt yang hilang
    • AI juga menemukan item yang tidak pernah ada, sehingga tetap diperlukan sikap “trust, but verify”
  • 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.

Belum ada komentar.