Təsir
Satır Səviyyəsi Təhlükəsizliyi (RLS) [S1] düzgün şəkildə tətbiq edilmədikdə, hücumçular verilənlər bazasında qeydləri oxumaq, yeniləmək və ya silmək üçün proqram məntiqindən yan keçə bilər. Bu, çox vaxt Şəxsi Müəyyənləşdirilə bilən Məlumatın (PII) və ya həssas tətbiq məlumatlarının yalnız ictimai anonim API açarına çıxışı olan istifadəçilərə məruz qalması ilə nəticələnir.
Kök Səbəb
Supabase, [S1] məlumatlarının təhlükəsizliyi üçün əsas olan verilənlər bazası səviyyəsində məlumat girişini idarə etmək üçün Postgres Row Level Security-dən istifadə edir. Next.js mühitində tərtibatçılar [S2]-nin server tərəfində göstərilməsi zamanı təhlükəsizliyi qorumaq üçün kukiləri və sessiyaları düzgün idarə edən Supabase müştəri yaratmalıdırlar. Zəifliklər adətən aşağıdakı hallarda yaranır:
- Cədvəllər RLS aktiv edilmədən yaradılmışdır ki, bu da onları ictimai anon açarı [S1] vasitəsilə əlçatan edir.
- Supabase klienti Next.js-də yanlış konfiqurasiya edilib, istifadəçi autentifikasiya nişanlarını [S2] verilənlər bazasına düzgün ötürə bilmir.
- Tərtibatçılar təsadüfən müştəri tərəfi kodunda
service_roleaçarından istifadə edirlər ki, bu da RLS bütün [S1] siyasətlərindən yan keçir.
Beton Təmirləri
- RLS-ni aktivləşdirin: Supabase verilənlər bazanız [S1]-də hər bir cədvəl üçün Sıra Səviyyəsi Təhlükəsizliyinin aktiv edildiyinə əmin olun.
- Siyasətləri Müəyyən edin: İstifadəçinin UID-yə əsaslanaraq girişini məhdudlaşdırmaq üçün
SELECT,INSERT,UPDATEvəDELETEüçün xüsusi Postgres siyasətləri yaradın [S1]. - SSR Müştərilərindən istifadə edin:
@supabase/ssrpaketini Next.js-də server tərəfi autentifikasiyası və sessiya davamlılığı [S2]-ni düzgün idarə edən müştərilər yaratmaq üçün həyata keçirin.
FixVibe bunu necə sınaqdan keçirir
FixVibe artıq bunu yerləşdirilmiş proqramlar və repo yoxlamaları vasitəsilə əhatə edir. Passiv baas.supabase-rls modulu eyni mənşəli JavaScript paketlərindən Supabase URL və anon-açar cütlərini aşkar edir, PostgREST-dən ictimai cədvəl metadatasını soruşur və müştəri məlumatlarını mutasiya etmədən anonim məlumatların ifşasını təsdiqləmək üçün məhdud oxunuş seçimini həyata keçirir. Repo skanları ENABLE ROW LEVEL SECURITY olmadan ictimai cədvəllər yaradan SQL miqrasiyalarını qeyd etmək üçün repo.supabase.missing-rls-ni də işə salır və gizli skanlar brauzerə çatmazdan əvvəl xidmət rolu açarının ifşasını axtarır.
