26 poin oleh GN⁺ 2023-11-26 | 6 komentar | Bagikan ke WhatsApp
  • Sqids adalah pustaka open-source yang membuat ID bergaya YouTube dari angka
  • ID yang dihasilkan pendek, dapat dibuat dengan alfabet kustom, dan dijamin bebas tabrakan
  • Contoh ID yang diberikan berbentuk seperti https://example.com/Lqj8a0

Alasan menggunakan Sqids

  • Tujuan utama Sqids adalah untuk efek visual
  • Sqids bisa menjadi pilihan yang baik ketika ingin menggunakan ID alih-alih angka di web app
  • Contoh penggunaan mencakup pemendekan tautan, penggunaan aman untuk URL, ID acara, encoding/decoding tanpa tabrakan, dan kata sandi sekali pakai
  • Tidak cocok untuk data sensitif, dan jika digunakan sebagai user ID jumlah pengguna bisa terekspos

Fitur Sqids

  • Dapat membuat ID pendek dari angka non-negatif
  • Mudah untuk encoding dan decoding
  • ID yang dibuat otomatis tidak mengandung kata kasar umum
  • Mendukung pengacakan alfabet untuk ID kustom
  • Mendukung 40 bahasa pemrograman, 15 di antaranya memakai desain baru
  • Menghasilkan ID yang sama di semua versi
  • Ukuran pustaka kecil dan memakai lisensi yang permisif

Opini GN⁺

  • Pustaka Sqids berguna bagi pengembang yang ingin memakai ID pendek dan bebas tabrakan sebagai pengganti angka di web app
  • Pustaka ini menawarkan ID yang menarik secara visual dan mendukung berbagai bahasa pemrograman sehingga mudah diakses
  • Memberikan peluang yang menguntungkan bagi pengembang open-source, dan hak cipta dilindungi melalui lisensi MIT

6 komentar

 
haebom 2023-11-27

Cocok untuk mencegah crawling.

 
stardust33 2023-11-30

Bisakah Anda menjelaskan sedikit lebih lanjut bagaimana penggunaannya dapat mencegah crawling?

 
ragus 2023-12-02

Kalau url hanya berupa posts/1, posts/2, posts/3, crawler akan mencoba memasukkan 1,2,3,4,5... dan menelusurinya.
Kalau url berbentuk seperti posts/L12Qsd, posts/dei24A, sepertinya itu tidak bisa dilakukan.

 
stardust33 2023-12-05

Ah! Terima kasih atas jawabannya.

 
jaypark 2023-11-27

Saya penasaran apa bedanya dengan hashids, jadi saya cari tahu dan ternyata saat membuka https://hashids.org akan diarahkan ke https://sqids.org/. Sepertinya mereka mengganti namanya.

https://sqids.org/faq#hashids

 
GN⁺ 2023-11-26
Opini Hacker News
  • Kemungkinan memperoleh insight bisnis dari perusahaan yang menggunakan ID berurutan

    • Misalnya, laju pertumbuhan perusahaan dapat diperkirakan dari ID yang diberikan saat pendaftaran anggota
    • Dapat diterapkan pada semua jenis resource dalam aplikasi
    • Mempertanyakan seberapa penting 'nilai sampah' di bilah URL pada zaman sekarang
    • Karena sebagian besar browser menyembunyikan sebagian besar URL, menggunakan uulids sambil menunggu UUID v7 digunakan secara luas
    • Komponen waktu bawaan terkadang berguna (misalnya: aturan penggabungan objek)
  • Keraguan atas penyebutan kode sandi sekali pakai

    • Kode sandi harus tidak dapat diprediksi, tetapi tidak harus unik
    • Akan berfungsi jika menyediakan sumber acak yang memadai, tetapi karakteristik 'dipenuhi nilai sampah' terlihat lebih rumit daripada kenyataannya
    • 4~8 digit angka acak bekerja dengan baik dan memberikan tingkat keamanan yang jelas
    • Angka lebih mudah dipahami daripada huruf Latin yang peka huruf besar-kecil, terutama bagi pengguna bahasa yang memakai sistem tulisan lain
  • Kekecewaan karena tidak bisa memformat integer 128-bit atau array byte

    • Itu akan memungkinkan pemformatan UUID
    • Kurang menyukai penggunaan ID integer publik
    • Ada risiko kebocoran informasi penting melalui ID yang menaik
    • Lebih memilih memformat UUID menjadi Base64URL agar lebih pendek untuk URL, kode QR, dan sebagainya
  • Di aplikasi Ruby, menggunakan cara konversi ke basis yang tinggi

    • Sqid menyediakan library Ruby dan memungkinkan pengaturan basis yang jauh lebih tinggi, termasuk huruf besar dan emoji
    • Diperlukan angka yang jauh lebih besar sebelum penghematan ruang benar-benar memberi perbedaan besar
    • Sulit mengetahui apakah ini layak menambah dependensi baru
  • Pemfilteran kata kasar bisa menjadi beban tanggung jawab dalam desain

    • Daftar kata terlarang harus dijaga tetap immutable untuk mempertahankan encoding
    • Jika tidak, sqids lama bisa didekode sebagai tidak valid
  • Lebih memilih penggunaan nanoid dan penggunaan kamus karakter yang aman

    • Mengusulkan pendekatan kamus serupa alih-alih implementasi hardcoded untuk mencari kata 'buruk'
    • Menyatakan ketertarikan pada suite uji performa
    • Pembuatan UUID v4 sudah dioptimalkan di sebagian besar bahasa, sehingga dipertanyakan apakah solusi kustom benar-benar lebih baik
  • Diskusi tentang penggunaan string yang dihasilkan secara acak

    • Digunakan untuk ID, token pemulihan kata sandi, dan sebagainya
    • Sudah dihasilkan jutaan kali, dan ratusan ribu orang memeriksanya setiap hari
    • Tidak ada kasus keluhan tentang ID konten acak
    • Masyarakat modern terlalu takut menyinggung seseorang, sehingga filter kata kasar meluas sampai ke ID database dan token pemulihan kata sandi
    • Jika panjang minimum diatur ke 8, kemungkinan kata kasar utuh muncul sebagai keseluruhan ID menjadi rendah
  • Kebingungan tentang penyediaan tautan ke 40 bahasa di bagian "Get Started"

    • Hanya 15 dari 40 bahasa yang bisa benar-benar dipakai untuk mulai, sedangkan 25 sisanya adalah repositori kerangka yang meminta orang memberi bintang pada repositori untuk menunjukkan minat
  • Pertanyaan tentang cara menyesuaikan atau mengembangkan blocklist

    • Jika sebuah ID ada di blacklist, ID itu cukup dinaikkan
    • ID terikat pada isi blacklist, dan menyesuaikannya akan membatalkan segmen tertentu dari ID yang telah dibuat sebelumnya
  • Banyak orang di thread ini menyebutnya sebagai cara yang baik untuk menyembunyikan insight dari ID/angka

    • Karena nilai yang dihasilkan dapat didekode dengan mudah, muncul pertanyaan apakah insight juga bisa diperoleh dengan mendekode beberapa angka