FixVibe
Covered by FixVibehigh

L-iżgurar ta' Next.js + Supabase: Prevenzjoni ta' Bypasses fil-Livell ta' Ringiela (RLS)

Applikazzjonijiet mibnija b'Next.js u Supabase ħafna drabi jiddependu fuq is-Sigurtà fil-Livell tar-Ringiela (RLS) biex jipproteġu d-dejta. In-nuqqas li RLS jew il-konfigurazzjoni ħażina tal-klijent Supabase jistgħu jwasslu għal espożizzjoni sħiħa tad-database, li tippermetti lill-utenti mhux awtorizzati jaqraw jew jimmodifikaw rekords sensittivi.

CWE-284

Impatt

L-attakkanti jistgħu jevitaw il-loġika tal-applikazzjoni biex jaqraw, jaġġornaw jew iħassru r-rekords fid-database jekk is-Sigurtà fil-Livell tar-Ringiela (RLS) ma tkunx infurzata sew [S1]. Dan spiss jirriżulta fl-espożizzjoni ta 'Informazzjoni Personalment Identifikabbli (PII) jew dejta tal-applikazzjoni sensittiva għal utenti li għandhom aċċess biss għaċ-ċavetta pubblika anonima API.

Kawża Għerq

Supabase juża Postgres Row Level Level Security biex jimmaniġġja l-aċċess għad-dejta fil-livell tad-dejtabejż, li huwa fundamentali biex tiġi żgurata d-dejta [S1]. F'ambjent Next.js, l-iżviluppaturi jridu joħolqu klijent Supabase li jimmaniġġja b'mod korrett il-cookies u s-sessjonijiet biex iżżomm is-sigurtà waqt ir-rendiment fuq in-naħa tas-server [S2]. Il-vulnerabbiltajiet tipikament jinqalgħu meta:

  • It-tabelli huma maħluqa mingħajr RLS ppermettiet, u tagħmilhom aċċessibbli permezz taċ-ċavetta pubblika anonima [S1].
  • Il-klijent Supabase huwa ikkonfigurat ħażin f'Next.js, jonqos milli jgħaddi b'mod xieraq it-tokens tal-awtentikazzjoni tal-utent għad-database [S2].
  • L-iżviluppaturi aċċidentalment jużaw iċ-ċavetta service_role fil-kodiċi tan-naħa tal-klijent, li tevita l-politiki kollha RLS [S1].

Fixs tal-Konkrit

  • Ippermetti RLS: Kun żgur li s-Sigurtà fil-Livell tar-Ringiela hija attivata għal kull tabella fid-database tiegħek Supabase [S1].
  • Iddefinixxi Policies: Oħloq politiki speċifiċi ta' Postgres għal SELECT, INSERT, UPDATE, u DELETE biex tirrestrinġi l-aċċess ibbażat fuq l-utent' UPDATE.
  • Uża Klijenti SSR: Implimenta l-pakkett @supabase/ssr biex toħloq klijenti f'Next.js li jimmaniġġjaw b'mod korrett l-awtentikazzjoni min-naħa tas-server u l-persistenza tas-sessjoni [S2].

Kif FixVibe jittestja għaliha

FixVibe diġà jkopri dan permezz ta' verifiki deployed-app u repo. Il-modulu passiv baas.supabase-rls jiskopri URL Supabase u pari anon-key minn qatet JavaScript tal-istess oriġini, jitlob lil PostgREST għal metadejta ta 'tabella pubblika, u jwettaq selezzjonijiet limitati ta' qari biss biex jikkonferma l-espożizzjoni tad-dejta anonima mingħajr ma jbiddel id-dejta tal-klijent. L-iskans repo jmexxu wkoll repo.supabase.missing-rls biex jimmarkaw migrazzjonijiet SQL li joħolqu tabelli pubbliċi mingħajr ENABLE ROW LEVEL SECURITY, u skans sigrieti jfittxu espożizzjoni taċ-ċavetta tar-rwol tas-servizz qabel ma tasal fil-browser.