delete_storage_object RPC 是 SECURITY DEFINER 且可由 anon 执行 — 任何存储对象都可以在无授权的情况下删除
作者: hyojunlim创建于 2026年9月2日更新于 2026年9月2日
摘要
public.delete_storage_object(bucket, object) 和 public.delete_storage_object_from_bucket(...) 在 supabase/migrations/20240108234540_setup.sql 中(大约在第 47 行)被创建为 SECURITY DEFINER,并使用服务角色密钥对存储执行 HTTP 删除。由于它们位于 public 方案中,PostgREST 将它们暴露在 /rest/v1/rpc/... 上,Supabase 默认为 anon 和 authenticated 赋予了 EXECUTE 权限。这两个函数都不会检查 auth.uid() 或对象所有权。
内容来源: mckaywrigley/chatbot-ui