Athari
Kushindwa kutekeleza Usalama wa Kiwango cha Safu (RLS) huruhusu washambuliaji ambao hawajaidhinishwa kuuliza data kutoka kwa hifadhidata ya Supabase majedwali ya umma yanapofichuliwa kupitia mpaka usio wa kawaida wa [S1]. Kwa sababu programu za Next.js kwa kawaida hufichua ufunguo wa Supabase anon katika msimbo wa upande wa mteja, mshambulizi anaweza kutumia ufunguo huu kupiga simu za REST API moja kwa moja kwenye hifadhidata, na kupita maelezo nyeti ya mtumiaji aliyekusudiwa ZKCVCVXFIX2.
Chanzo Chanzo
Kwa chaguomsingi, majedwali ya Postgres katika Supabase yanahitaji kuwezesha kwa njia dhahiri Usalama wa Kiwango cha Safu ili kuzuia ufikiaji wa umma [S1]. Msanidi anapounda jedwali lakini akasahau kuwasha RLS au akashindwa kufafanua sera zenye vizuizi, hifadhidata inaweza kufichua data kwa mtu yeyote anayemiliki ufunguo wa anon wa mradi [S1]. Katika programu za Next.js, uwasilishaji wa upande wa seva na uletaji wa upande wa mteja pia unahitaji usanidi makini wa mteja wa Supabase ili muktadha wa mtumiaji aliyeidhinishwa ufikie safu ya hifadhidata [S2].
Marekebisho ya Zege
- Washa RLS: Tekeleza
ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY;kwa kila jedwali la umma linalohifadhi data ya programu [S1]. - Bainisha Sera: Unda sera mahususi zinazozuia ufikiaji kulingana na hali ya uthibitishaji ya mtumiaji, kama vile
CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id);[S1]. - Linda Wateja wa Upande wa Seva: Unapotumia Next.js, weka wateja wa jukumu la huduma pekee na bado utumie vichujio vya umiliki kabla ya kurejesha data kwa watumiaji [S2].
Jinsi FixVibe inavyoifanyia majaribio
FixVibe tayari inatumia ukaguzi wa Supabase RLS kupitia baas.supabase-rls. Kichanganuzi hugundua URL ya mradi wa Supabase na ufunguo wa anon wa umma kutoka kwa vifurushi vya JavaScript vya asili moja, huuliza PostgREST kwa metadata ya jedwali la umma, na hujaribu kuchagua kusoma pekee ili kuthibitisha kama data itafichuliwa bila kipindi cha mtumiaji. Haiingizi, kusasisha, kufuta au kutumia vitambulisho vya jukumu la huduma. Uchanganuzi wa repo pia unaweza kupata hii mapema kupitia repo.supabase.missing-rls, ambayo huripoti uhamaji wa SQL ambao huunda majedwali ya umma bila ENABLE ROW LEVEL SECURITY.
