React 19 ve Supabase ile Sıfır Bilgi Güvenli DocSend Alternatifi Oluşturma
Gizliliğin her zamankinden daha önemli olduğu günümüzde, hassas belgelerin paylaşımı büyük bir endişe kaynağı olabiliyor. Geleneksel doküman paylaşım platformları, verilerinizin kontrolünü size tam olarak vermeyebilir. Peki, ya belgelerinizi kimseyle paylaşmadan, sadece yetkilendirdiğiniz kişilerin erişebileceği, üstelik bunu yaparken verilerinizin gizliliğini en üst düzeyde koruyan bir sistem kursaydık? Bu makalede, React 19’un yeniliklerini ve Supabase’in güçlü backend yeteneklerini kullanarak, açık kaynaklı, sıfır bilgi (zero-knowledge) prensiplerine dayanan bir DocSend alternatifi geliştireceğiz. Bu yolculukta, projenin temelini oluşturan kavramlardan başlayıp, adım adım uygulama detaylarına ve ileri düzey optimizasyonlara kadar ilerleyeceğiz.
Neden Bir DocSend Alternatifi?
Günümüzde birçok profesyonel, potansiyel müşterilerle, iş ortaklarıyla veya yatırımcılarla hassas belgeler paylaşıyor. Bu belgeler, finansal raporlardan gizli projelere, ürün tasarımlarından kişisel bilgilere kadar geniş bir yelpazeyi kapsayabilir. Mevcut popüler platformlar, genellikle belge takibi, indirme analizi gibi özellikler sunarken, kullanıcıların verilerinin güvenliği ve gizliliği konusunda tam bir kontrol sahibi olmalarını sağlamakta yetersiz kalabiliyor. Verilerin üçüncü parti sunucularda saklanması, erişim loglarının şeffaf olmaması veya veri sızıntısı riskleri gibi endişeler, özellikle hassas bilgileri yöneten şirketler ve bireyler için ciddi sorunlar teşkil ediyor. DocSend gibi platformlar bu ihtiyaca çözüm sunsa da, genellikle ticari ürünlerdir ve kullanıcıların veri üzerinde tam denetim sahibi olmasını engeller. Açık kaynaklı bir alternatif geliştirmek, hem topluluğun katkısıyla daha güvenli ve şeffaf bir çözüm sunma potansiyeli taşır hem de maliyetleri düşürerek daha geniş kitlelere ulaşabilir. Sıfır bilgi prensiplerini benimsemek ise, belgelerin içeriğinin platform sağlayıcısı tarafından bile bilinmemesini sağlayarak veri gizliliğini eşsiz bir seviyeye taşıyor. Bu, özellikle regülasyonlara tabi sektörlerde (sağlık, finans gibi) veya yüksek derecede gizlilik gerektiren durumlarda kritik öneme sahip.
Temel Kavramlar ve Teknolojiler
Bu projeyi hayata geçirmeden önce, kullanacağımız temel teknolojiler ve kavramlar hakkında bilgi sahibi olmak önemlidir. Öncelikle, kullanıcı arayüzünü (UI) oluşturmak için modern ve güçlü bir JavaScript kütüphanesi olan React 19‘u kullanacağız. React’in bileşen tabanlı yapısı, karmaşık arayüzleri yönetmeyi kolaylaştırırken, React 19 ile gelen yenilikler, özellikle sunucu bileşenleri (Server Components) ve Suspense gibi özellikler, performans ve geliştirici deneyimi açısından önemli avantajlar sunacaktır. Backend (arka uç) hizmetleri için ise Supabase‘i tercih edeceğiz. Supabase, açık kaynaklı bir Firebase alternatifi olarak, PostgreSQL veritabanı, kimlik doğrulama (authentication), gerçek zamanlı abonelikler (realtime subscriptions) ve dosya depolama gibi birçok özelliği tek bir platformda sunuyor. Bu, başlangıçta kendi backend altyapımızı kurma ve yönetme yükünü ortadan kaldırarak geliştirme sürecini hızlandıracaktır. En kritik kavramımız ise Sıfır Bilgi Kanıtları (Zero-Knowledge Proofs – ZKP) olacak. ZKP, bir tarafın (kanıtlayıcı), başka bir tarafın (doğrulayıcı) isteği üzerine, bir ifadenin doğru olduğunu, ifadenin kendisi hakkında herhangi bir ek bilgi vermeden kanıtlamasına olanak tanır. Bizim senaryomuzda bu, bir kullanıcının belgeye erişim hakkı olduğunu, belgenin içeriği veya kullanıcının kimliği hakkında ek bilgi paylaşmadan kanıtlaması anlamına gelebilir. Elbette, tam teşekküllü bir ZKP implementasyonu oldukça karmaşıktır ve genellikle özel kütüphaneler gerektirir. Ancak, burada temel prensibi uygulayarak, erişim kontrollerini merkezi bir veritabanında tutmak yerine, istemci tarafında ve kriptografik yöntemlerle güçlendirilmiş bir şekilde yönetmeye odaklanacağız. Belge erişim izinlerini şifreleyerek ve sadece yetkili istemcilerin çözebileceği bir mekanizma kurarak sıfır bilgi prensibine yaklaşacağız. Ek olarak, uçtan uca şifreleme (end-to-end encryption) prensiplerini de benimseyerek, belgelerin sunucuda bile şifreli kalmasını sağlayacağız. Bu, hem veri gizliliğini artıracak hem de platformun kendisinin verilere erişmesini engelleyecektir.
Proje Yapısı ve Kurulum
Bu projeye başlarken, temiz ve ölçeklenebilir bir proje yapısı oluşturmak önemlidir. React 19 ile yeni bir proje başlatmak için genellikle Vite gibi modern bir build aracı kullanılır. Bir terminal penceresi açarak aşağıdaki komutu çalıştırabiliriz:
npm create vite@latest my-zero-knowledge-docs --template react-ts
cd my-zero-knowledge-docs
npm install
npm install @supabase/supabase-js crypto-js
npm run dev
Bu komutlar, TypeScript desteğiyle yeni bir React projesi oluşturacak, gerekli bağımlılıkları yükleyecek ve geliştirme sunucusunu başlatacaktır. Ardından, bir Supabase projesi oluşturmamız gerekiyor. Supabase’in web sitesine giderek ücretsiz bir hesap oluşturabilir ve yeni bir proje başlatabilirsiniz. Projeniz oluşturulduktan sonra, projenizin ayarlarından ‘API’ sekmesine giderek projenizin URL’sini ve anonim anahtarını (anon key) almanız gerekecek. Bu bilgiler, uygulamanızın Supabase ile iletişim kurmasını sağlayacaktır. Bu bilgileri, projenizin kök dizininde bir .env dosyası oluşturarak saklayabilirsiniz:
VITE_SUPABASE_URL=YOUR_SUPABASE_URL
VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
Ardından, bu ortam değişkenlerini uygulamanızda kullanmak için src/main.tsx dosyasında veya uygun bir konfigürasyon dosyasında yüklemeniz gerekir. Proje yapısı olarak, bileşenleri (components), sayfaları (pages), yardımcı fonksiyonları (utils) ve konfigürasyonları (config) ayrı klasörlerde tutmak, kodun organize ve yönetilebilir olmasını sağlayacaktır. Örneğin, src/components/DocumentCard.tsx, src/pages/Dashboard.tsx, src/utils/crypto.ts gibi yapılar kullanabiliriz. Supabase ile etkileşim kuracak kodları, ayrı bir src/services/supabase.ts dosyasında toplamak da iyi bir pratiktir. Bu kurulum, projemizin sağlam bir temel üzerine oturmasını sağlayacak ve gelecekteki geliştirmeler için esneklik sunacaktır.
Belge Yükleme ve Yönetimi
Kullanıcıların belgelerini güvenli bir şekilde yükleyebilmesi ve yönetebilmesi, sistemimizin temel işlevlerinden biridir. Bu kısımda, Supabase Storage’ı kullanarak dosyaları depolayacak ve erişim kontrollerini nasıl uygulayacağımızı ele alacağız. Bir belge yükleme bileşeni oluşturarak başlayabiliriz. Bu bileşen, bir dosya seçme alanı ve yükleme işlemini tetikleyen bir buton içerecektir. Kullanıcı bir dosya seçtiğinde, dosyanın içeriğini alacak ve bu içeriği sunucuya göndermeden önce istemci tarafında şifreleyeceğiz. Şifreleme için popüler ve güvenilir bir kütüphane olan crypto-js‘i kullanabiliriz. AES gibi simetrik bir şifreleme algoritması, dosyanın içeriğini güçlü bir anahtarla şifrelemek için uygundur. Bu anahtarın güvenliği kritik öneme sahiptir. İdeal olarak, bu anahtar kullanıcı bazında oluşturulmalı ve güvenli bir şekilde saklanmalıdır. Ancak sıfır bilgi prensibi gereği, bu anahtarın kendisi de belgenin içeriği kadar hassastır. Bir yaklaşım, her belge için rastgele bir şifreleme anahtarı üretmek ve bu anahtarı, belgenin sahibinin kimliğine bağlı olarak (örneğin, kullanıcının şifresinden türetilen bir anahtarla) şifreleyerek Supabase’de ayrı bir meta veri olarak saklamaktır. Bu, belgenin içeriğini ve onu çözmek için gereken anahtarı korur.
Belge yüklendikten sonra, şifrelenmiş dosya içeriği Supabase Storage’a yüklenir. Supabase Storage, dosyaları güvenli bir şekilde saklamak ve erişimi yönetmek için güçlü araçlar sunar. Her dosya için benzersiz bir kimlik (ID) oluşturulacak ve bu ID, veritabanında belgenin meta verileriyle birlikte saklanacaktır. Meta veriler arasında dosya adı, yükleme tarihi, dosya türü ve en önemlisi, şifreleme anahtarının şifrelenmiş hali bulunmalıdır. Supabase’in Row Level Security (RLS) politikaları, hangi kullanıcıların hangi dosyalara erişebileceğini belirlemek için kullanılabilir. Örneğin, yalnızca belgenin sahibi olan kullanıcılar, şifrelenmiş dosyayı indirebilir ve şifreleme anahtarının şifresini çözebilir. Bu, veri güvenliğini sağlamak için çok önemlidir. Belge yönetimi arayüzü, kullanıcılara yükledikleri belgeleri listeleme, silme ve indirme gibi işlemler yapma olanağı sunmalıdır. Her indirme işlemi, güvenlik kontrollerinden geçmelidir. Kullanıcı belgeyi indirmek istediğinde, önce Supabase’den şifrelenmiş dosya içeriğini alacak, ardından meta verilerinden şifrelenmiş anahtarı çekecek ve kullanıcının kimliğine göre bu anahtarın şifresini çözecektir. Çözülen anahtar ile dosya içeriğinin şifresi çözülerek kullanıcıya sunulacaktır. Bu süreç, belgenin içeriğinin hiçbir zaman düz metin olarak sunucuda saklanmadığını ve yalnızca yetkili kullanıcılar tarafından erişilebilir olduğunu garanti eder.
Erişim Kontrolü ve Sıfır Bilgi Prensipleri
Sıfır bilgi prensiplerini uygulamak, bu projenin en zorlu ama en ödüllendirici yönlerinden biridir. Amacımız, bir kullanıcının bir belgeye erişim hakkı olduğunu, belgenin içeriği hakkında hiçbir ek bilgi ifşa etmeden kanıtlamasını sağlamaktır. Gerçek sıfır bilgi kanıtları (ZKP) karmaşık matematiksel yapılar gerektirir ve genellikle özel kütüphanelerle (örn. snarkjs, circom) uygulanır. Ancak, burada daha erişilebilir bir yaklaşım izleyerek, temel sıfır bilgi mantığını uygulayacağız. Temel fikir şudur: Bir belgeye erişim izni, yalnızca belgenin sahibi veya belirli bir paylaşım bağlantısına sahip kişiler tarafından verilir. Bu izinlerin kendisi, kriptografik olarak korunmalıdır.
Bir belgeyi paylaştığımızda, bir paylaşım bağlantısı oluşturulabilir. Bu bağlantı, rastgele ve tahmin edilemez bir dize olmalıdır. Bu bağlantı, belgenin şifrelenmiş anahtarına erişim sağlamak için bir “anahtar” görevi görebilir. Bağlantıyı bilen kişi, belgeyi indirme ve şifresini çözme hakkına sahip olur. Ancak bu bağlantının kendisi, belgenin içeriği hakkında hiçbir şey söylememelidir. Paylaşım bağlantıları için, Supabase’de ayrı bir tablo oluşturabiliriz. Bu tabloda, belge ID’si, benzersiz paylaşım token’ı ve bu token’ın geçerlilik süresi gibi bilgiler saklanabilir. Bir kullanıcı belgeyi paylaştığında, benzersiz bir token oluşturulur ve bu token ile ilişkilendirilen şifreleme anahtarı, bu token’a özel olarak şifrelenir. Token’ı bilen kişi, ilgili belgenin şifresini çözmek için gereken anahtarı elde edebilir.
Bunun sıfır bilgi prensibine nasıl yaklaştığını inceleyelim: Birisi paylaşım bağlantısını aldığında (token), belgeyi indirmek için istemci tarafında bu token’ı kullanır. Uygulama, bu token’ı kullanarak Supabase’deki meta verilerden ilgili şifrelenmiş anahtarı çeker. Ardından, kullanıcının cihazında, bu token’a özgü şifrelenmiş anahtarın şifresi çözülür. Bu şifre çözme işlemi, kullanıcının kendisinin bildiği bir sırra dayanabilir (örneğin, tarayıcıda saklanan güvenli bir anahtar veya kullanıcının girdiği bir parola). Eğer şifre çözme başarılı olursa, dosya içeriği de çözülür. Bu senaryoda, sunucu (Supabase) ve hatta platformun kendisi, belgenin içeriğini veya anahtarını asla düz metin olarak görmez. Erişim izni, yalnızca token’ı bilmekle değil, aynı zamanda token ile ilişkilendirilen şifreleme anahtarını da çözebilmekle elde edilir. Bu, belgenin kiminle paylaşıldığı bilgisini platformdan gizleyerek, sıfır bilgi prensibine yaklaşır. Daha ileri düzeyde, bir kullanıcının belgeye erişim hakkı olup olmadığını kanıtlamak için daha gelişmiş ZKP teknikleri (örn. zk-SNARKs) kullanılabilir. Bu, kullanıcının kimliğini veya erişim yetkisini kanıtlamak için karmaşık kriptografik kanıtlar üretmeyi içerir. Ancak başlangıç için, token tabanlı şifreleme ve istemci tarafı şifre çözme mekanizması, güvenli ve sıfır bilgiye yakın bir çözüm sunacaktır.
React 19 Yenilikleri ve Uygulama Optimizasyonları
React 19 ile gelen yenilikler, bu tür bir uygulamayı geliştirirken önemli avantajlar sunabilir. Özellikle Sunucu Bileşenleri (Server Components), uygulamanın performansını artırmak ve sunucu tarafında daha fazla işleme yapmak için kullanılabilir. Örneğin, belge listeleme veya meta veri çekme gibi işlemler sunucu bileşenlerinde yapılarak, istemci tarafındaki yük azaltılabilir. Bu, özellikle ilk yükleme sürelerini iyileştirmek için harika bir yoldur. Ayrıca, Suspense API’si, veri çekme ve asenkron işlemler sırasında yükleme durumlarını daha zarif bir şekilde yönetmemizi sağlar. Bu, kullanıcı deneyimini önemli ölçüde iyileştirir; kullanıcılar, veriler yüklenirken boş ekranlar yerine anlamlı yükleme göstergeleri görürler.
Uygulama optimizasyonları açısından, ilk olarak Code Splitting (kod bölme) tekniklerini kullanmak önemlidir. Vite, bunu otomatik olarak destekler, ancak manuel olarak da optimize edilebilir. Bu, uygulamanın yalnızca ihtiyaç duyulan kod parçalarını yüklemesini sağlayarak ilk yükleme süresini kısaltır. İkinci olarak, Memoization (belleğe alma) teknikleri, gereksiz yeniden render’ları önlemek için kullanılabilir. React.memo veya useMemo gibi hook’lar, performans darboğazlarını gidermeye yardımcı olabilir. Üçüncü olarak, Image Optimization (resim optimizasyonu) önemlidir, ancak bu proje için doğrudan bir gereklilik olmayabilir. Ancak, eğer uygulamanızda görseller kullanılacaksa, bunları optimize etmek performansı artıracaktır. Dördüncü olarak, Client-side Encryption Key Management (istemci tarafı şifreleme anahtar yönetimi) kritik öneme sahiptir. Anahtarların tarayıcıda güvenli bir şekilde saklanması için localStorage yerine sessionStorage veya daha güvenli mekanizmalar (örneğin, Web Cryptography API ile şifrelenmiş bir anahtar deposu) tercih edilebilir. Ancak bu, karmaşıklığı artıracaktır. Başlangıç için, anahtarın sadece oturum süresince geçerli olması, temel bir güvenlik katmanı sağlar.
React 19 ile gelen bir diğer önemli özellik, form yönetimi ve veri gönderimi ile ilgili iyileştirmelerdir. Bu, belge yükleme ve meta veri güncelleme gibi işlemlerin daha verimli bir şekilde yönetilmesine olanak tanır. Sunucu bileşenleri, API çağrılarını doğrudan sunucu tarafında yaparak, istemci tarafındaki veri akışını basitleştirebilir. Bu, örneğin, bir belgeyi yüklerken, dosyanın şifrelenmesi ve ardından Supabase’e gönderilmesi gibi işlemlerin sunucu bileşenleri içinde gerçekleştirilmesini sağlayabilir. Bu, hem güvenlik hem de performans açısından faydalı olabilir. Son olarak, uygulamanın genel mimarisini düşünmek önemlidir. Bileşenleri küçük, yeniden kullanılabilir parçalara ayırmak, kodun okunabilirliğini ve bakımını kolaylaştırır. Bu, özellikle projenin büyüdüğünde büyük fayda sağlar. React 19’un getirdiği yenilikleri etkin bir şekilde kullanarak, daha performanslı, güvenli ve kullanıcı dostu bir sıfır bilgi doküman paylaşım platformu oluşturabiliriz.
Gerçek Dünya Senaryosu: Vaka Analizi
Bir avukatlık bürosunu ele alalım. Bu büro, müvekkillerinin hassas hukuki belgelerini, dava dosyalarını ve kişisel bilgilerini paylaşmak zorundadır. Mevcut çözümler, veri gizliliği konusunda endişeler yaratabilir. Büronun geliştirdiği açık kaynaklı, sıfır bilgi DocSend alternatifi, bu sorunu kökten çözebilir. Avukatlar, bir dava dosyası hazırladığında, dosyayı sisteme yükler. Dosya, istemci tarafında güçlü bir şifreleme ile şifrelenir ve ardından Supabase’e yüklenir. Dosyanın şifreleme anahtarı, avukatın kimliğine bağlı olarak (örneğin, avukatın parolasından türetilen bir anahtarla) şifrelenerek meta veri olarak saklanır. Dava müvekkiliyle paylaşım yapılması gerektiğinde, avukat bir paylaşım bağlantısı oluşturur. Bu bağlantı, benzersiz ve tahmin edilemez bir token içerir. Müvekkil, bu bağlantıyı kullanarak dosyaya erişir. Uygulama, müvekkilin tarayıcısında, token’ı kullanarak şifrelenmiş anahtarı çözer. Eğer şifre çözme başarılı olursa, müvekkil dosyanın şifresini çözebilir ve içeriğini görebilir. Bu senaryoda, avukatlık bürosunun sunucuları veya platform sağlayıcısı, dava dosyasının içeriğini veya şifreleme anahtarını asla göremez. Bu, müvekkil gizliliğini en üst düzeyde korur ve büronun yasal düzenlemelere (örn. KVKK, GDPR) uyumunu kolaylaştırır. Ayrıca, büro, veri üzerinde tam kontrole sahip olur, bu da veri güvenliği ve denetim açısından büyük bir avantaj sağlar. Başka bir senaryo olarak, bir startup’ın yatırımcılara gizli bir iş planı sunması düşünülebilir. İş planı, benzer bir süreçle şifrelenir ve paylaşılır. Yatırımcı, paylaşım bağlantısını kullanarak iş planına erişir. Bu sayede startup, fikri mülkiyetini korurken, yatırımcılarla etkili bir şekilde iletişim kurabilir. Bu tür bir sistem, gizliliğin kritik olduğu her sektörde devrim yaratabilir.
İlerleyen Adımlar ve Gelecek Vizyonu
Bu makalede ele aldığımız proje, sıfır bilgi prensiplerine dayalı bir DocSend alternatifi oluşturmanın temelini atmaktadır. Ancak, bu sadece bir başlangıç. Gelecekteki geliştirmelerle, bu platformu daha da güçlü ve kullanışlı hale getirebiliriz. İlk olarak, gelişmiş sıfır bilgi kanıtı (ZKP) entegrasyonu üzerinde çalışılabilir. zk-SNARKs veya zk-STARKs gibi teknolojilerle, kullanıcıların kimliklerini veya belirli verilere erişim yetkilerini, bu bilgileri ifşa etmeden kanıtlamalarını sağlayabiliriz. Bu, daha güvenli ve gizlilik odaklı bir kimlik doğrulama ve yetkilendirme sistemi oluşturmamıza olanak tanır. İkinci olarak, gerçek zamanlı işbirliği özellikleri eklenebilir. Supabase’in gerçek zamanlı abonelikleri kullanılarak, birden fazla kullanıcının aynı belge üzerinde eş zamanlı olarak çalışması ve değişikliklerin anında senkronize edilmesi sağlanabilir. Bu, belgelerin sadece paylaşılmasını değil, aynı zamanda aktif olarak üzerinde çalışılmasını da mümkün kılar. Üçüncü olarak, daha gelişmiş analitik ve takip özellikleri eklenebilir. Ancak bu özellikler, sıfır bilgi prensiplerine zarar vermeyecek şekilde tasarlanmalıdır. Örneğin, belgenin kim tarafından ve ne zaman indirildiği gibi bilgiler, yalnızca belge sahibinin erişebileceği ve kriptografik olarak korunmuş bir şekilde saklanabilir. Dördüncü olarak, mobil uygulama desteği sunulabilir. React Native gibi teknolojilerle, bu platformun mobil cihazlarda da sorunsuz çalışması sağlanabilir. Bu, kullanıcıların her yerden ve her zaman belgelerine güvenli bir şekilde erişmelerini mümkün kılar.
Ayrıca, erişim kontrol politikalarının daha detaylı yönetimi üzerine çalışılabilir. Belirli kullanıcı gruplarına farklı erişim seviyeleri atama, belirli IP adreslerinden erişimi kısıtlama veya zaman bazlı erişim izinleri tanımlama gibi özellikler eklenebilir. Bu, kurumsal kullanımlar için platformu daha esnek hale getirecektir. Kriptografik anahtar yönetimi konusunda da iyileştirmeler yapılabilir. Hardware Security Modules (HSM) gibi donanımsal çözümlerle anahtarların güvenliği daha da artırılabilir. Son olarak, açık kaynak topluluğunun katılımını teşvik etmek, projenin sürdürülebilirliği ve güvenliği için kritiktir. Düzenli olarak kod incelemeleri yapmak, güvenlik açıklarını gidermek ve topluluktan gelen geri bildirimleri dikkate almak, platformun sürekli olarak gelişmesini sağlayacaktır. Bu projenin vizyonu, sadece bir dosya paylaşım aracı olmanın ötesine geçerek, dijital dünyada güvenli ve gizlilik odaklı veri paylaşımının standartlarını belirlemektir. React 19 ve Supabase gibi modern teknolojilerle, bu vizyonu gerçeğe dönüştürmek artık daha ulaşılabilir.
Sıkça Sorulan Sorular
-
Sıfır bilgi kanıtları tam olarak ne anlama geliyor ve bu projede nasıl uygulanıyor?
Sıfır bilgi kanıtları (ZKP), bir ifadenin doğruluğunu, ifadenin kendisi hakkında ek bilgi vermeden kanıtlamaya olanak tanır. Bu projede, ZKP’nin temel prensibini, erişim izinlerinin ve şifreleme anahtarlarının, içeriği veya kimliği ifşa etmeden yönetilmesiyle uyguluyoruz. Tam teşekküllü ZKP implementasyonu yerine, şifrelenmiş anahtarlar ve güvenli token’lar aracılığıyla bir yaklaşım benimsiyoruz. Bu, platformun kendisinin bile belgelerin içeriğini bilmemesini sağlar.
-
React 19’un bu projeye ne gibi katkıları olacak?
React 19’un Sunucu Bileşenleri ve Suspense gibi yenilikleri, uygulamanın performansını artırmak, sunucu tarafında daha fazla işleme yapmak ve veri yükleme durumlarını daha zarif yönetmek için kullanılabilir. Bu, daha hızlı yükleme süreleri ve daha iyi bir kullanıcı deneyimi anlamına gelir.
-
Supabase’in bu projede rolü nedir?
Supabase, projemizin backend altyapısını oluşturuyor. PostgreSQL veritabanı, kimlik doğrulama, dosya depolama (Storage) ve gerçek zamanlı özellikler gibi birçok hizmeti tek bir platformda sunuyor. Bu, kendi backend’imizi kurma ve yönetme yükünü ortadan kaldırarak geliştirme sürecini hızlandırıyor.
-
Belgelerin güvenliği nasıl sağlanıyor? Uçtan uca şifreleme kullanılıyor mu?
Evet, belgeler istemci tarafında güçlü şifreleme algoritmaları (örn. AES) kullanılarak şifrelenir ve bu şifrelenmiş haliyle Supabase’e yüklenir. Şifreleme anahtarları da kullanıcının kimliğine veya paylaşım token’ına bağlı olarak şifrelenir ve güvenli bir şekilde saklanır. Bu, uçtan uca şifreleme prensiplerine yaklaşır ve belgelerin sunucuda bile düz metin olarak bulunmamasını sağlar.
-
Bu proje açık kaynaklı olmasının avantajları nelerdir?
Açık kaynaklı olması, topluluğun projeye katkıda bulunmasını sağlar. Bu, daha hızlı hata ayıklama, yeni özelliklerin eklenmesi ve genel olarak daha güvenli ve şeffaf bir çözüm anlamına gelir. Ayrıca, kullanıcılar kodun kendisini inceleyebilir ve güvenliğinden emin olabilirler. Ticari çözümlere göre daha uygun maliyetli olabilir.
#Teknoloji #WebGeliştirme #React #Supabase #ZeroKnowledge #Güvenlik #AçıkKaynak