Eu vou consertar seu erro 403 RLS no upload do armazenamento do supabase em 24 horas


Sobre este Serviço
Tradução automática
Seu upload retorna 403 e a mensagem diz política de segurança de nível de linha. A política parece estar correta. Geralmente está.
O que realmente acontece é uma de seis coisas: a requisição chega sem sessão, então ela é considerada como anônima, o insert é avaliado por WITH CHECK e não USING, o prefixo do caminho não é o que a política espera, upsert e uploads resumíveis precisam de uma política de UPDATE também, URLs assinadas precisam de SELECT, ou uma concessão abaixo da política está faltando e retorna o mesmo 403.
Eu descubro qual é, conserto, e provoco: o mesmo upload do seu próprio cliente, antes e depois, com a resposta impressa ao lado.
Você recebe a migração, uma linha do que realmente estava errado, e uma verificação do que ainda bloqueia um estranho, para que o conserto não abra seu bucket silenciosamente para todo mundo.
Me envie o erro exato, o SQL da política, o nome do bucket e como seu cliente foi criado. Uma cópia de staging ou uma função de leitura é suficiente. Não preciso da sua chave de função de serviço.
Construo um POS multi-inquilino no Supabase, com cerca de 90 migrações, ativo em lojas reais. Três revisões de segurança encontraram seis vulnerabilidades reais, todas passando por políticas que estavam corretas como escritas.
Conheça mais sobre Basel Draz
Supabase RLS and privilege audits
- A partir deEgito
- Membro desdefev. de 2024
- Responde em aprox.:11 horas
Idiomas
Árabe, Inglês
Tradução automática
Meu portfólio
Perguntas frequentes
Tradução automática
Você pode simplesmente tornar meu bucket público e pronto?
Não. Isso remove o erro ao eliminar a segurança, e também não ajuda nos uploads, já que um bucket público ainda precisa de uma política de INSERT. Se o bucket realmente deve ser público, te aviso e leva dois minutos, mas não farei isso silenciosamente para fechar um ticket.
Você precisa da minha chave de função de serviço?
Não, e eu preferiria que não fosse. Uma função de leitura, ou uma cópia de staging com o mesmo esquema, é suficiente para descobrir a causa. Quando for necessário escrever, te envio a migração e você executa. Pode revogar o que me deu assim que terminar.
Uso Clerk ou um JWT personalizado, não o Supabase Auth. Isso muda alguma coisa?
Está coberto, e é uma das causas mais comuns. A claim que sua política lê muitas vezes não é a claim que o token realmente carrega, então auth.uid() volta null ou errado e cada upload falha, mesmo que o login pareça estar ok.
E se o problema não for armazenamento de verdade?
Eu te aviso, com a consulta que mostra isso, e você decide se continua. Não vou inventar uma descoberta de armazenamento só para justificar o pedido, e se não tiver nada aqui que valha a pena pagar, eu digo antes que você gaste mais.

