26 puan yazan GN⁺ 2023-11-26 | 6 yorum | WhatsApp'ta paylaş
  • Sqids, sayılardan YouTube tarzı ID’ler üreten açık kaynaklı bir kütüphanedir
  • Üretilen ID’ler kısadır, kullanıcı tanımlı bir alfabe ile üretilebilir ve çakışma olmayacağı garanti edilir
  • Örnek olarak verilen ID, https://example.com/Lqj8a0 gibi bir formdadır

Sqids kullanma nedenleri

  • Sqids’in başlıca kullanım amacı görsel etkidir
  • Web uygulamalarında sayılar yerine ID kullanmak istiyorsanız, Sqids iyi bir seçim olabilir
  • Kullanım örnekleri arasında bağlantı kısaltma, URL’de güvenli kullanım, etkinlik ID’leri, çakışmasız kodlama/kod çözme ve tek kullanımlık parolalar yer alır
  • Hassas veriler için uygun değildir; kullanıcı ID’si olarak kullanıldığında kullanıcı sayısını ortaya çıkarabilir

Sqids’in özellikleri

  • Negatif olmayan sayılardan kısa ID’ler üretilebilir
  • Kodlama ve kod çözme kolaydır
  • Otomatik üretilen ID’lerde yaygın küfürler yer almaz
  • Kullanıcı tanımlı ID’ler için alfabe karıştırmayı destekler
  • 40 programlama dilini destekler; bunların 15’i yeni tasarımı kullanır
  • Tüm sürümlerde aynı ID’leri üretir
  • Küçük kütüphane boyutuna ve esnek bir lisansa sahiptir

GN⁺’nin görüşü

  • Sqids kütüphanesi, web uygulamalarında sayılar yerine kısa ve çakışmasız ID’ler kullanmak isteyen geliştiriciler için faydalıdır
  • Bu kütüphane görsel olarak çekici ID’ler sunar ve çok sayıda programlama dilini desteklediği için erişilebilirliği yüksektir
  • Açık kaynak geliştiricileri için avantajlı fırsatlar sunar ve MIT lisansı ile lisanslanmıştır

6 yorum

 
haebom 2023-11-27

Crawling'i engellemek için iyi görünüyor.

 
stardust33 2023-11-30

Bunu nasıl kullanınca crawling’in nasıl engellenebildiğini biraz daha açıklayabilir misiniz?

 
ragus 2023-12-02

URL yalnızca posts/1, posts/2, posts/3 şeklindeyse tarayıcılar 1,2,3,4,5... yazarak dolaşıyor.
URL posts/L12Qsd, posts/dei24A gibi olduğunda ise bunu yapamadıkları için sanırım durum böyle.

 
stardust33 2023-12-05

Ah! Yanıtınız için teşekkür ederim.

 
jaypark 2023-11-27

hashids ile ne farkı var diye merak edip baktım; https://hashids.org adresine girince https://sqids.org/ adresine yönlendiriyor. Görünüşe göre adını değiştirmişler.

https://sqids.org/faq#hashids

 
GN⁺ 2023-11-26
Hacker News görüşleri
  • Ardışık ID’ler kullanan şirketlerden iş içgörüleri elde etme olasılığı

    • Örneğin, kayıt olurken verilen ID üzerinden şirketin büyüme hızını tahmin etmek mümkün
    • Uygulama içindeki tüm kaynak türlerine uygulanabilir
    • URL çubuğundaki “çöp değer”in günümüzde ne kadar önemli olduğu sorgulanıyor
    • Çoğu tarayıcı URL’nin büyük kısmını gizlediği için UUID v7’nin yaygınlaşmasını beklerken uulids kullanılıyor
    • Yerleşik zaman bileşeni bazen faydalı oluyor (ör. nesne birleştirme kuralları)
  • Tek kullanımlık geçiş kodu ifadesine dair soru işaretleri

    • Geçiş kodları tahmin edilemez olmalı, ancak mutlaka benzersiz olmak zorunda değil
    • Uygun bir rastgelelik kaynağı sağlanırsa çalışır, ancak “çöp değerle doldurulmuş” özelliği gerçekte olduğundan daha karmaşık görünüyor
    • 4~8 rastgele rakam iyi çalışır ve güvenlik seviyesini net biçimde sunar
    • Rakamlar, özellikle farklı yazı sistemleri kullanan dillerin kullanıcıları için, büyük/küçük harf duyarlı Latin karakterlerden daha kolay anlaşılır
  • 128 bit tamsayıları veya bayt dizilerini formatlayamamasından duyulan hayal kırıklığı

    • Bu, UUID formatlamasını mümkün kılardı
    • Herkese açık tamsayı ID kullanımı pek tercih edilmiyor
    • Artan ID’lerle önemli bilgilerin sızma riski var
    • URL, QR kod vb. için UUID’leri Base64URL olarak formatlayıp kısaltmak tercih ediliyor
  • Ruby uygulamalarında yüksek tabanlı dönüştürme yöntemi kullanılıyor

    • Sqid bir Ruby kütüphanesi sunuyor ve çok daha yüksek taban ayarlarına izin veriyor; buna büyük harfler ve emoji de dahil
    • Alan tasarrufunun ciddi fark yaratması için çok daha büyük sayılar gerekiyor
    • Yeni bir bağımlılık eklemeye değip değmeyeceğini anlamak zor
  • Küfür filtreleme tasarım gereği bir sorumluluk olabilir

    • Kodlamayı korumak için yasaklı kelime listesinin değişmez tutulması gerekir
    • Aksi halde önceki sqids’ler hatalı biçimde decode edilebilir
  • nanoid kullanımını ve güvenli karakter sözlüğü kullanılmasını tercih etme

    • “Kötü” kelimeleri bulmak için hardcoded bir uygulama yerine benzer bir sözlük yaklaşımı öneriliyor
    • Performans test paketiyle ilgilenildiği belirtiliyor
    • Çoğu dilde UUID v4 üretimi optimize edildiği için, özel çözümlerin gerçekten daha iyi olup olmadığı sorgulanıyor
  • Rastgele üretilen dizelerin kullanımı üzerine tartışma

    • ID, parola kurtarma token’ları vb. için kullanılıyor
    • Milyonlarcası üretildi ve her gün yüz binlerce kişi bunları doğruluyor
    • Rastgele içerik ID’leri hakkında şikayet edilmiş bir örnek yok
    • Modern toplumun birini gücendirmekten fazlasıyla çekinmesi nedeniyle küfür filtresi veritabanı ID’lerine ve parola kurtarma token’larına kadar genişliyor
    • Minimum uzunluk 8 olarak ayarlanırsa, tam bir küfür kelimesinin tüm ID olarak görünme olasılığı düşüktür
  • "Get Started" bölümünde 40 dil için bağlantı verilmesine dair kafa karışıklığı

    • 40 dilin yalnızca 15’iyle başlanabiliyor; kalan 25’i ise insanların ilgisini göstermek için depoyu yıldızlamasını isteyen iskelet depolar
  • Blok listesinin nasıl ayarlanacağı veya geliştirileceğine dair soru

    • ID kara listedeyse yalnızca artırılıyor
    • ID, blok listesinin içeriğine sabitlenmiş durumda; bu içerik değiştirilirse daha önce üretilmiş ID’lerin belirli segmentleri geçersiz hale geliyor
  • Bu başlıkta birçok kişinin bunun ID/sayı kaynaklı içgörüleri gizlemek için iyi bir yol olduğunu söylemesi

    • Üretilen değerler kolayca decode edilebildiği için, birkaç sayıyı decode ederek içgörü elde etmenin mümkün olup olmayacağı sorgulanıyor