Ik los je supabase storage upload 403 rls fout op in 24 uur

B
basildraz
B
basildraz
Basel Draz
Sommige informatie is automatisch vertaald.

Over deze dienst

Automatische vertaling

Je upload geeft 403 terug en het bericht zegt row-level security policy. De policy lijkt correct te zijn. Dat is meestal zo.

Wat er eigenlijk gebeurt, is een van zes dingen: het verzoek komt zonder sessie binnen dus het landt als anon, de insert wordt beoordeeld door WITH CHECK en niet USING, de pad prefix is niet wat de policy verwacht, upsert en resumable uploads hebben ook een UPDATE policy nodig, signed URLs hebben SELECT nodig, of er ontbreekt een grant onder de policy en geeft hetzelfde 403.

Ik vind welke het is, los het op, en bewijs het: dezelfde upload van jouw eigen client, voor en na, met de response ernaast weergegeven.

Je krijgt de migratie, één regel over wat er precies fout was, en een controle op wat nog een stranger blokkeert, zodat de fix niet stilletjes je bucket voor iedereen opent.

Stuur me de exacte fout, de policy SQL, de bucket naam, en hoe je client is gemaakt. Een staging kopie of een read-only rol is genoeg. Ik heb je service role key niet nodig.

Ik bouw een multi-tenant POS op Supabase, ongeveer 90 migraties, live in echte winkels. Drie security reviews hebben zes echte gaten gevonden, allemaal na policies die correct waren zoals ze waren geschreven.

Maak kennis met Basel Draz

Basel Draz

Supabase RLS and privilege audits

  • Afkomstig uitEgypte
  • Lid sindsfeb 2024
  • Gem. reactietijd11 uur
  • Talen

    Arabisch, Engels
I build multi-tenant systems on Next.js and Supabase, and I do security passes on them. I maintain a point-of-sale platform running in real shops - FIFO inventory batches, recipe items, staff permissions enforced in the database, thermal receipts. 90 migrations, three security reviews deep. Those reviews found six real holes, every one past policies that were correct as written. I published the checks that found them as an open-source read-only SQL script. Authorization belongs in the database, not the interface. Nothing is confirmed by reading code - I ask your database as a real user.

Automatische vertaling

Mijn portfolio