Athari
Wavamizi wanaweza kukwepa mantiki ya programu kusoma, kusasisha, au kufuta rekodi katika hifadhidata ikiwa Usalama wa Kiwango cha Safu (RLS) haujatekelezwa ipasavyo [S1]. Hii mara nyingi husababisha kufichuliwa kwa Taarifa Inayotambulika Binafsi (PII) au data nyeti ya programu kwa watumiaji ambao wanaweza tu kufikia ufunguo wa API usiojulikana wa umma.
Chanzo Chanzo
Supabase hutumia Usalama wa Kiwango cha Safu ya Postgres kudhibiti ufikiaji wa data katika kiwango cha hifadhidata, ambayo ni ya msingi katika kupata data [S1]. Katika mazingira ya Next.js, wasanidi lazima waunde mteja wa Supabase ambaye anashughulikia kwa usahihi vidakuzi na vipindi ili kudumisha usalama wakati wa uwasilishaji wa upande wa seva [S2]. Udhaifu kwa kawaida hutokea wakati:
- Majedwali yameundwa bila RLS kuwezeshwa, na kuzifanya zipatikane kupitia ufunguo wa anon wa umma [S1].
- Kiteja cha Supabase kimewekwa vibaya katika Next.js, na kushindwa kupitisha ipasavyo tokeni za uthibitishaji wa mtumiaji kwenye hifadhidata [S2].
- Wasanidi hutumia kimakosa ufunguo wa
service_rolekatika msimbo wa upande wa mteja, ambao unakwepa sera zote za RLS [S1].
Marekebisho ya Zege
- Washa RLS: Hakikisha Usalama wa Kiwango cha Safu umewashwa kwa kila jedwali katika hifadhidata yako ya Supabase [S1].
- Bainisha Sera: Unda sera mahususi za Postgres za
SELECT,INSERT,UPDATE, naDELETEshughuli ili kuzuia ufikiaji kulingana na UVIBETOX ya mtumiaji4ZVXVX. - Tumia Wateja wa SSR: Tekeleza kifurushi cha
@supabase/ssrili kuunda wateja katika Next.js ambayo inadhibiti kwa usahihi uthibitishaji wa upande wa seva na kuendelea kwa kipindi [S2].
Jinsi FixVibe inavyoifanyia majaribio
FixVibe tayari inashughulikia hii kupitia ukaguzi wa programu-tumizi na repo. Sehemu tuli ya baas.supabase-rls hugundua URL ya Supabase na jozi zisizo za ufunguo kutoka kwa vifurushi vya JavaScript vya asili moja, huuliza PostgREST kwa metadata ya jedwali la umma, na kufanya chaguo chache za kusoma tu ili kuthibitisha kufichuliwa kwa data bila kutambulisha mtu bila kubadilisha data ya mteja. Uchanganuzi wa repo pia huendesha repo.supabase.missing-rls ili kuripoti uhamaji wa SQL ambao huunda majedwali ya umma bila ENABLE ROW LEVEL SECURITY, na uchanganuzi wa siri hutafuta udhihirisho wa ufunguo wa jukumu la huduma kabla haujafika kwenye kivinjari.
