Mehmet
Admin
Lovable ile hazırlanan bir uygulamada kullanıcıların yalnız kendi kayıtlarını görmesi, ekrandaki filtreye bırakılamaz. Supabase kullanıyorsanız kayıt erişiminin veri tabanındaki Row Level Security, yani satır düzeyinde yetki politikasıyla da sınırlandırılması gerekir. Arayüzde gizlenen bir kayda doğrudan istekle erişilebiliyorsa yetki sorunu devam eder.
Mevcut politika değişikliğini yayınlamadan önce uygulamanın gerçekten ihtiyacı olan erişimi tanımlayın. Bir ekip tarafından ortak kullanılacak kayıtla kişisel notun kuralı aynı değildir; veri modelinin gerektirdiği paylaşımı açıkça tasarlayın.
Kayıt sahibini açık biçimde tutun
Varsayımsal bir kişisel not tablosunda her kaydın oturum sahibini gösteren user_id alanı olsun. Bu alanın tipi, kimlik sistemindeki kullanıcı kimliğiyle uyumlu olmalıdır. Uygulama yalnız okunacak notları süzmekle kalmamalı; yeni not eklerken başka bir kullanıcı kimliği yazılmasını da engellemelidir.Politikayı test verisiyle doğrulayın
- Etkilenen tablo ve işlemi bulun. Listeleme, tek kayıt görüntüleme, ekleme, güncelleme ve silmeyi ayrı değerlendirin. Bir işlem için doğru politika diğerlerini otomatik olarak kapsamaz.
- Kayıt sahipliği alanını kontrol edin. Mevcut kayıtların hangi kullanıcıya ait olduğunu belirleyin. Sahibi belirsiz gerçek veriye rastgele bir kullanıcı atamayın.
- RLS ve politikaları inceleyin. Lovable’dan gerçek tablonun mevcut kurallarını göstermesini ve gereken değişikliği açıklamasını isteyin. Örneğin okuma koşulu oturum kimliğiyle user_id eşitliği olabilir; eklemede sahiplik denetimi de gerekir.
- İki ayrı test hesabıyla deneyin. A hesabında not oluşturun. B hesabıyla aynı kaydı listeleme ve kimliği biliniyorsa tekil erişim yoluyla okumayı deneyin. Beklenen sonuç B için erişimin reddedilmesidir.
- Düzenleme ve silmeyi ayrıca sınayın. B hesabı A’nın kaydını değiştirememeli; A kendi kaydı üzerinde amaçlanan işlemi yapabilmelidir. Oturumsuz denemeyi de kontrol edin.
Sorunu görünmez yapan yanlış düzeltmeler
Bütün sorguları ayrıcalıklı sunucu anahtarıyla çalıştırmak, hatalı politikayı saklayabilir ve yetki sınırını aşabilir. Servis rolü anahtarını tarayıcı koduna koymayın. RLS’yi kapatmak da kullanıcıya ait veri ayrımını sağlamaz.Mevcut politika değişikliğini yayınlamadan önce uygulamanın gerçekten ihtiyacı olan erişimi tanımlayın. Bir ekip tarafından ortak kullanılacak kayıtla kişisel notun kuralı aynı değildir; veri modelinin gerektirdiği paylaşımı açıkça tasarlayın.