2 poin oleh GN⁺ 9 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Ekstensi Chrome yang digunakan untuk memvisualisasikan data JSON secara terstruktur tidak lagi dipertahankan sebagai open source
  • Proyek ini beralih ke model komersial tertutup, dan versi barunya sedang dikembangkan sebagai alat eksplorasi API dengan fitur premium
  • Untuk pengguna lama, JSON Formatter Classic dirilis sebagai versi open source terakhir, dan hanya disediakan dalam bentuk formatter lokal saja
  • Versi Classic tidak lagi menerima pembaruan, dan dapat diinstal melalui Chrome Web Store atau dari source code
  • Perubahan ini menimbulkan kekhawatiran tentang penyisipan kode iklan dan penurunan keandalan

Pengumuman penghentian dan transisi proyek

  • JSON Formatter menghentikan pengembangan open source dan beralih ke model komersial tertutup
    • Versi baru sedang dikembangkan sebagai alat eksplorasi API dengan fitur premium
  • Untuk pengguna open source yang ada, versi open source terakhir dirilis sebagai JSON Formatter Classic
    • Dapat diinstal dari Chrome Web Store, dan tetap dipertahankan sebagai ekstensi pemformatan JSON lokal saja
    • Tidak akan ada pembaruan lagi

Gambaran umum JSON Formatter

  • Ekstensi untuk browser Chrome yang memvisualisasikan respons JSON API secara terstruktur
  • Menawarkan pemrosesan cepat bahkan pada halaman JSON yang panjang, serta mendukung Dark Mode dan syntax highlighting
  • Mencakup fitur lipat/buka struktur tree, panduan indentasi, dan URL yang dapat diklik
  • Pada halaman non-JSON, dampak performanya hanya kurang dari 1 milidetik
  • Menyediakan tombol Raw / Parsed JSON, dan JSON yang sudah diparse dapat diakses di console melalui variabel global json

1 komentar

 
GN⁺ 9 hari lalu
Komentar Hacker News
  • Hari ini menemukan elemen mencurigakan bernama give-freely-root-bcjindcccaagfpapjjmafapmmgkkhgoa di Chrome Inspector
    Setelah dicek, ternyata ekstensi open source populer JSON Formatter sekitar sebulan lalu beralih menjadi closed source dan mulai menyisipkan kode iklan dan pelacakan lokasi ke halaman pembayaran
    Sekarang marketplace ekstensi browser itu sendiri terasa seperti eksperimen yang gagal. Rasanya lebih baik bikin JSON formatter sendiri lalu pakai sendiri

    • Ironisnya, menurut kebijakan Google, menyisipkan iklan diperbolehkan tetapi menghapusnya justru dilarang
    • Fitur penyaringan keamanan di app store tetap punya nilai tertentu. Memang tidak sempurna, tetapi tetap lebih baik daripada lingkungan tanpa kontrol sama sekali
    • Menipu pengguna lama lalu menyisipkan iklan menurutku benar-benar tindakan yang tidak etis. Beralih ke versi komersial tertutup itu tidak masalah, tetapi memasukkan iklan tanpa pemberitahuan sebelumnya sudah kelewatan
    • Tindakan seperti ini harus mendapat kritik dan pertanggungjawaban secara terbuka. Memang setengah bercanda, tetapi menurutku praktik “jual diri” seperti ini juga perlu mendapat sanksi sosial
    • Penasaran bagaimana elemen mencurigakan seperti itu bisa ditemukan. Ingin bertanya apakah memang sering memeriksa DOM seperti itu
  • Menarik bahwa penulis dalam kasus ini, Callum Locke, adalah orang sungguhan
    Dulu developer yang memakai nama asli seperti ini dianggap sebagai sinyal kepercayaan, tetapi sekarang ternyata belum tentu begitu

    • Kalau jumlah pengguna mencapai jutaan, godaan untuk menjual tentu sangat besar. Aku juga mengelola ekstensi dengan sekitar 300 ribu pengguna, dan proposal yang kuterima selama beberapa tahun saja nilainya sudah cukup besar
      Diskusi terkait ada di diskusi GitHub HoverZoom
    • Kalau punya ekstensi populer, aku tahu betul sulit untuk menghindari godaan seperti ini
    • Para pemelihara ekstensi browser sering menerima email penawaran mencurigakan. Kasus ini juga tampaknya contoh jatuh pada penawaran seperti itu
    • Bagaimanapun juga, Callum Locke bisa dibilang kehilangan reputasinya sepenuhnya karena kejadian ini
  • Jika melihat komentar HN yang ditinggalkan langsung oleh pembuatnya 2 tahun lalu,
    dia bersumpah bahwa dirinya adalah pencipta JSON Formatter dan tidak akan pernah mengirim atau menjual data pengguna
    Dia juga mengatakan bahwa dirinya beberapa kali menerima tawaran akuisisi bernilai besar tetapi menolaknya demi menjaga kehormatan

    • Jadi teringat ungkapan, “Mati sebagai pahlawan, atau hidup cukup lama hingga menjadi penjahat”
    • Sekarang biaya untuk membuat alat sendiri nyaris nol, jadi menurutku tidak ada alasan kuat untuk terlalu percaya pada orang lain
    • Pada akhirnya janji seperti ini mungkin juga cuma strategi penjualan. Open source membutuhkan struktur pendanaan berkelanjutan yang layak
    • Meski begitu, andai dia tetap memegang prinsip sampai akhir, itu tentu hal yang baik
  • Menurut balasan review Chrome Web Store yang ditinggalkan pembuatnya,
    ‘Give Freely’ dijelaskan bukan sebagai spyware melainkan sistem tautan afiliasi untuk donasi
    Katanya, ketika pengguna berbelanja di merchant afiliasi, sebagian pendapatan akan disumbangkan ke organisasi seperti Code.org
    Dia menegaskan bahwa mereka tidak mengumpulkan data pribadi maupun data penjelajahan, dan jika tidak diinginkan fitur itu bisa dinonaktifkan sepenuhnya di pengaturan
    Mereka juga menyediakan versi JSON Formatter Classic yang tidak memiliki kode ‘Give Freely’

    • Terlepas dari niatnya, cara eksekusinya buruk, dan ini terlihat sebagai contoh yang menyingkap kerentanan keamanan dalam model distribusi ekstensi browser
  • Menurutku masalah intinya ada pada ideologi auto-update
    Update memang memperbaiki kerentanan keamanan, tetapi pada saat yang sama juga memunculkan perubahan yang tidak diinginkan pengguna serta risiko serangan rantai pasok
    Khususnya untuk ekstensi buatan developer perorangan, auto-update seharusnya bisa dimatikan. Namun Chrome tidak mengizinkannya
    Karena filosofi Google yang berpusat pada iklan, perubahan menjadi adware seperti ini tampaknya bahkan tidak dianggap sebagai masalah
    Firefox sedikit lebih baik, tetapi tetap disayangkan karena ekstensi hasil build sendiri tidak bisa dipasang permanen

    • Di Firefox pun sebenarnya tidak sepenuhnya mustahil. Bisa dimuat sementara lewat about:debugging, atau dengan mematikan xpinstall.signatures.required
    • Secara pribadi, prinsipku adalah semua program yang berjalan lokal harus dilarang auto-update. Kalau tidak, itu pada dasarnya cuma backdoor RCE yang diterima secara sosial
    • Untuk ekstensi dengan fungsi tetap seperti JSON Formatter, yang terbaik adalah menonaktifkan update segera setelah dipasang.
      Namun ekstensi seperti uBlock yang perlu memperbarui filter list secara berkala mungkin bisa menjadi pengecualian
  • Menurutku masalah terbesar di Chrome Web Store adalah ketidaksesuaian antara biner dan source code publik
    Store begitu saja mempercayai paket yang diunggah developer, tanpa memverifikasi apakah benar cocok dengan kode publik yang tersedia
    Aku sendiri pernah mencoba reproducible build untuk beberapa ekstensi, dan sebagian besar ternyata tidak cocok
    Firefox AMO melakukan diff dengan clean build setelah source diserahkan, tetapi Chrome tidak
    Tanpa reproducible build dan keterkaitan ke signed commit, tidak ada cara untuk mendeteksi penyisipan kode berbahaya sebelumnya

  • Google terus mendorong Manifest V3 sambil membiarkan masalah seperti ini
    Bahkan memberi badge ‘Featured’ pada ekstensi berbahaya seperti Blaze VPN, Safum VPN, Snap VPN
    Mereka adalah tiruan dari kelompok PDF Toolbox yang sebelumnya membuat ekstensi berbahaya, dan kenyataannya bahkan tidak benar-benar berfungsi
    Ini adalah contoh yang menunjukkan betapa kacau sistem verifikasi di Chrome Web Store

  • Hal yang sama juga terjadi pada ekstensi ModHeader
    Tautan ModHeader
    Ekstensi itu mulai menyisipkan iklan ke setiap hasil pencarian Google, dan meskipun sudah dilaporkan masih tetap ada di store

  • Seminggu lalu aku menyadari masalah ini, lalu mengumpulkan fitur-fitur yang kusukai dan membuat JSON formatter baru sendiri
    GitHub - JSON Alexander

    • Namanya dipuji benar-benar keren
  • Kejadian ini menjadi alasan yang bagus untuk merapikan ekstensi terpasang
    Aku berencana hanya menyisakan yang benar-benar perlu dan menghapus sisanya