Ana içeriğe atla
Ribaunt, Node.js ve modern tarayıcılar için durumsuz bir iş kanıtı (proof-of-work) CAPTCHA kütüphanesidir. Challenge durumunu izlemek için merkezi bir veritabanına veya üçüncü taraf bir hizmete güvenmek yerine, Ribaunt sunucunuzun ihtiyaç duyduğu her şeyi doğrudan imzalı bir JWT’ye kodlar. Sunucunuz challenge’lar yayınlar, tarayıcı bunları çözer ve doğrulama basit bir imza kontrolü ile gerçekleşir — harici depolama gerekmez. Paylaşılan durumu yönetmenin operasyonel yükü olmadan güvenilir bot koruması isteyen geliştiriciler için tasarlanmıştır.

Nasıl çalışır

Akış üç adımdan oluşur: sunucunuz imzalı bir JWT challenge oluşturur, tarayıcı widget’ı geçerli bir nonce üretmek için iş kanıtı hesaplaması yapar ve sunucunuz herhangi bir işlemi kabul etmeden önce imzayı ve nonce’u yeniden doğrular. Challenge yükü bağımsız ve RIBAUNT_SECRET ile imzalı olduğundan, sunucu istekler arasında hiçbir şey kalıcı olarak saklamadan onu istediği zaman doğrulayabilir. Şifreleme ayrıntıları ve tekrar oynatma koruma stratejileri hakkında daha ayrıntılı bilgi için Nasıl çalışır sayfasına bakın.

Temel özellikler

Durumsuz

Challenge’lar imzalı JWT’lerdir — bunları yayınlamak veya doğrulamak için veritabanı, önbellek veya paylaşılan oturum deposu gerekmez.

Tarayıcı widget'ı

Yerleşik bir Web Bileşeni düz HTML ile çalışır. Bir React sarmalayıcı (ribaunt/widget-react) React ve Next.js ile entegre olur.

Tekrar oynatma koruması

Yerel (süreç düzeyinde) tekrar oynatma koruması varsayılan olarak açıktır. Sunucusuz veya çok örnekli dağıtımlar için bir Redis/Valkey deposu takın.

Tam türlü

TypeScript ile yazılmış ve tam tür bildirimleri dahildir. @types paketine gerek yoktur.

Yapılandırılabilir zorluk

Güvenlik ve kullanıcı deneyimini dengelemek için her uç nokta için difficulty, amount ve ttlSeconds değerlerini ayarlayın.

Temalanabilir

Widget’ı CSS özel özellikleriyle biçimlendirin — shadow DOM iç yapısına dokunmadan herhangi bir tasarım sistemiyle eşleştirin.

Kurulum

Ribaunt’u tercih ettiğiniz paket yöneticisiyle npm’den yükleyin.
npm install ribaunt
Tarayıcıda çözme, güvenli bir bağlam gerektirir — üretimde HTTPS veya geliştirme sırasında http://localhost kullanın. Widget’ı http://192.168.x.x gibi düz bir LAN adresinden yüklemek başarısız olur çünkü Web Crypto API’si güvenli olmayan bağlamlarda kullanılamaz.

Sonraki adımlar

Hızlı Başlangıç

Gizli anahtarınızı ayarlayın, sunucu uç noktaları oluşturun ve widget’ı sayfanıza beş dakikadan kısa sürede ekleyin.

Nasıl çalışır

Tam iş kanıtı akışını, JWT challenge yapısını ve tekrar oynatma önlemeyi derinlemesine anlayın.