Anyone can read your users table.
Row Level Security is off for public.profiles
Row Level Security (RLS) is turned off for this table. Anyone, even people who are not logged in, can read, add, change and delete every row through the API. They only need your anon key, and that key is public: it is inside your website code.
- Where
- public.profiles
- Evidence
- RLS: off. API access: anon: SELECT, INSERT, UPDATE, DELETE; authenticated: SELECT, INSERT, UPDATE, DELETE.
How to fix it
Turn on Row Level Security for this table. Then add policies: with RLS on and no policies, the API blocks all access to the table, so your app cannot use it until you add them.
alter table public.profiles enable row level security;-- Next: add policies. Example: each logged-in user can use only their own rows.-- create policy "Users can manage their own rows" on public.profiles-- for all to authenticated using ((select auth.uid()) = id) with check ((select auth.uid()) = id);Learn more:supabase.com