Mõju
Ründajad saavad andmebaasi kirjete lugemiseks, värskendamiseks või kustutamiseks rakendusloogikast mööda minna, kui reataseme turvalisus (RLS) ei ole [S1] korralikult jõustatud. Selle tulemuseks on sageli isikutuvastava teabe (PII) või tundlike rakenduseandmete paljastamine kasutajatele, kellel on juurdepääs ainult avalikule anonüümsele API-võtmele.
Algpõhjus
Supabase kasutab andmetele juurdepääsu haldamiseks andmebaasi tasemel turvalisust Postgres Row Level, mis on andmete [S1] turvalisuse jaoks ülioluline. Next.js keskkonnas peavad arendajad looma Supabase kliendi, mis haldab küpsiseid ja seansse õigesti, et säilitada turvalisus serveripoolse renderdamise ajal [S2]. Haavatavus ilmneb tavaliselt siis, kui:
- Tabelid luuakse ilma, et RLS oleks lubatud, mistõttu need on juurdepääsetavad avaliku anon-võtmega [S1].
- Supabase klient on failis Next.js valesti konfigureeritud, kuna see ei edasta kasutaja autentimismärke õigesti andmebaasi [S2].
- Arendajad kasutavad kliendipoolses koodis kogemata võtit
service_role, mis läheb mööda kõigist RLS poliitikatest [S1].
Betooniparandused
- Lubage RLS: Veenduge, et reataseme turvalisus oleks teie Supabase andmebaasis [S1] iga tabeli jaoks lubatud.
- Määrake poliitikad: looge konkreetsed Postgresi eeskirjad toimingute jaoks
SELECT,INSERT,UPDATEjaDELETE, et piirata juurdepääsu kasutaja UID-le ZBETCEN4XVIXZX. - Kasutage SSR-i kliente: rakendage paketti
@supabase/ssr, et luua Next.js-s kliente, mis haldavad õigesti serveripoolset autentimist ja seansi püsivust [S2].
Kuidas FixVibe seda testib
FixVibe katab selle juba juurutatud rakenduste ja repokontrollide kaudu. Passiivne moodul baas.supabase-rls avastab Supabase URL-i ja anon-võtme paarid sama päritoluga JavaScripti kimpudest, küsib PostgREST-ilt avalikke tabeli metaandmeid ja teeb piiratud kirjutuskaitstud valikuid, et kinnitada anonüümseid andmeid ilma kliendiandmeid muutmata. Repokontrollid käitavad ka repo.supabase.missing-rls, et märgistada SQL-i migratsioonid, mis loovad avalikke tabeleid ilma ENABLE ROW LEVEL SECURITY-ta, ja salajased kontrollid otsivad teenuserolli võtme kokkupuudet enne, kui see brauserisse jõuab.
