FixVibe
Covered by FixVibehigh

Missitirilen Supabase hatar derejesiniň howpsuzlygy (RLS) arkaly rugsatsyz maglumat elýeterliligi

Supabase goldaýan programmalarda maglumat howpsuzlygy Row Level Security (RLS) -e esaslanýar. RLS aç-açan işledilmedik we syýasatlar bilen düzülen bolsa, köpçülige näbelli açary bolan islendik ulanyjy maglumatlar bazasynyň hemme ýerinde maglumatlary okap, täzeläp ýa-da pozup biler. Next.js gurşawynda bu aýratyn möhümdir, Supabase müşderisi köplenç köpçülige açyk API açary bilen başlanýar.

CWE-284

Täsir

Setir derejesiniň howpsuzlygyny (RLS) ýerine ýetirmezlik, tassyklanmadyk hüjümçilere Supabase maglumatlar bazasyndan maglumat soramaga mümkinçilik berýär, köpçülige açyk tablisalar [S1]. Next.js programmalary, adatça, Supabase anon açaryny açýanlygy sebäpli, hüjümçi bu açary ulanyp, REST API jaňlaryna gönüden-göni REST API açýar. [S2].

Kök sebäp

Düzgüne görä, Supabase-de Postgres tablisalary [S1] köpçülige girmeginiň öňüni almak üçin Row Level Security-iň aç-açan işjeňleşdirilmegini talap edýär. Haçan-da bir dörediji tablisa döredeninde, ýöne RLS açmagy ýatdan çykaranda ýa-da çäklendiriji syýasatlary kesgitlemese, maglumatlar bazasy taslamanyň anon açary [S1] açýanlara maglumat berip biler. Next.js programmalarynda serwer tarapyny görkezmek we müşderi tarapyny almak hem seresaply Supabase müşderi gurnamagyny talap edýär, şonuň üçin tassyklanan ulanyjy konteksti [S2] maglumat bazasyna ýetýär.

Beton düzedişler

1.

  • Syýasatlary kesgitläň: Ulanyjynyň tanamaklyk ýagdaýyna esaslanyp, CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id); [S1] ýaly ygtyýarlylygy çäklendirýän anyk syýasatlary dörediň.
  • Howpsuz serwer tarapy müşderileri: Next.js ulananyňyzda, hyzmat roluny müşderileriň diňe serwerinde saklaň we [S2] ulanyjylara maglumatlary gaýtarmazdan ozal eýeçilik süzgüçlerini ulanyň.

FixVibe munuň üçin nädip synag edýär

FixVibe eýýäm okalýan diňe Supabase RLS baas.supabase-rls arkaly işleýär. Skaner Supabase taslamasynyň URL-sini we birmeňzeş JavaScript bukjalaryndan köpçülige açyk açary açýar, PostgREST-den umumy tablisanyň meta-maglumatyny soraýar we ulanyjy sessiýasyz maglumatlaryň açylýandygyny tassyklamak üçin çäkli okalýan saýlamalara synanyşýar. Hyzmat rol maglumatyny goýmaýar, täzelemeýär, pozmaýar we ulanmaýar. Repo skanerleri muny has öň repo.supabase.missing-rls arkaly hem alyp biler, bu bolsa ENABLE ROW LEVEL SECURITY bolmazdan köpçülikleýin tablisalary döredýän SQL göçümlerini belleýär.