Risolverò il tuo errore 403 RLS di upload su supabase in 24 ore


Informazioni su questo servizio
Traduzione automatica.
Il tuo upload restituisce 403 e il messaggio indica una policy di sicurezza a livello di riga. La policy sembra corretta. Di solito lo è.
Quello che in realtà succede è una di sei cose: la richiesta arriva senza una sessione, quindi viene trattata come anonima, l'inserimento viene giudicato da WITH CHECK e non da USING, il prefisso del percorso non corrisponde a quello che la policy si aspetta, gli upsert e gli upload ripetibili richiedono anche una policy di UPDATE, gli URL firmati necessitano di SELECT, oppure manca un grant sotto la policy e si ottiene lo stesso errore 403.
Trovo quale delle sei cose è, la correggo e lo dimostro: lo stesso upload dal tuo client, prima e dopo, con la risposta stampata accanto.
Ti fornisco la migrazione, una riga su cosa era effettivamente sbagliato, e un controllo su cosa ancora blocca uno sconosciuto, così la correzione non apre silenziosamente il tuo bucket a tutti.
Inviami l'esatto errore, lo SQL della policy, il nome del bucket e come è stato creato il tuo client. Una copia di staging o un ruolo in sola lettura sono sufficienti. Non ho bisogno della tua chiave di ruolo di servizio.
Costruisco un POS multi-tenant su Supabase, con circa 90 migrazioni, attivo in negozi reali. Tre revisioni di sicurezza hanno trovato sei vulnerabilità reali, tutte superate da policy che erano corrette così come scritte.
Scopri di più su Basel Draz
Supabase RLS and privilege audits
- DaEgitto
- Membro dafeb 2024
- Tempo di risposta medio11 ore
Lingue
Arabo, Inglese
Traduzione automatica.
Il mio portfolio
FAQ
Traduzione automatica.
Puoi semplicemente rendere pubblico il mio bucket e basta?
No. Questo elimina l'errore rimuovendo la sicurezza, e non aiuta nemmeno gli upload, poiché un bucket pubblico ha comunque bisogno di una policy di INSERT. Se il bucket dovrebbe essere davvero pubblico te lo dirò e ci vogliono due minuti, ma non lo farò in silenzio per chiudere un ticket.
Hai bisogno della mia chiave di ruolo del servizio?
No, e preferirei non averlo. Un ruolo in sola lettura, o una copia di staging con lo stesso schema, sono sufficienti per trovare la causa. Quando serve scrivere, ti invio la migrazione e la esegui. Puoi revocare tutto ciò che mi hai dato non appena abbiamo finito.
Usi Clerk o un JWT personalizzato, non Supabase Auth. Questo cambia qualcosa?
È coperto, ed è una delle cause più comuni. La claim che la tua policy legge spesso non è quella che il token effettivamente porta, quindi auth.uid() torna null o sbagliato e ogni upload fallisce mentre il login stesso sembra a posto.
E se il problema si rivela non essere affatto storage?
Te lo dico, con la query che lo mostra, e decidi se continuare. Non inventerò una scoperta sullo storage per giustificare l'ordine, e se non c'è nulla qui che valga la pena pagare, te lo dirò prima che spendi di più.

