РАЗРАБОТКА

Разработчики Supabase часто допускают ошибку в RLS — проверьте свою безопасность

Большинство приложений на Supabase имеют уязвимость в настройках RLS. Узнайте, что нужно исправить для защиты данных.

✍️ Редакция iTech News | 28.01.2026 | ⏱ 2 мин | 👁 5 | Источник: DEV Community
Ошибка разработчиков Supabase в RLS: проверьте свою безопасность

Почти 80% приложений на Supabase имеют неправильные настройки Row Level Security (RLS), что позволяет пользователям видеть данные других. Это создаёт серьезные риски для безопасности.

Ситуация на рынке

Supabase, как альтернатива Firebase, быстро завоевала популярность среди разработчиков благодаря простоте интеграции и мощному функционалу. Однако многие разработчики, включая новичков и опытных, не обращают должного внимания на безопасность. Как показывает практика, большинство из них активируют RLS, основываясь на стандартных шаблонах, и игнорируют важные детали.

Опасные ошибки в RLS

Главная ошибка, которую допускают разработчики, заключается в использовании стандартных политик доступа. Например, конструкция CREATE POLICY "Users can view data" ON public.user_data FOR SELECT USING (auth.role() = 'authenticated'); позволяет любому аутентифицированному пользователю видеть все записи в таблице. Это открывает доступ к данным других пользователей.

Вместо этого правильная политика должна выглядеть следующим образом: CREATE POLICY "Users can view their own data" ON public.user_data FOR SELECT USING (auth.uid() = user_id); Эта проверка гарантирует, что пользователь сможет видеть только свои данные, что значительно улучшает уровень безопасности.

Для проверки текущих настроек basta воспользоваться SQL-запросом в Supabase SQL редакторе: SELECT schemaname, tablename, policyname, qual FROM pg_policies WHERE schemaname = 'public' ORDER BY tablename; Если вы увидите конструкцию (auth.role() = 'authenticated'::text), это означает, что ваша безопасность под угрозой.

Что делать дальше?

Разработчикам рекомендуется проверить свои приложения и исправить политику доступа на всех таблицах, содержащих пользовательские данные. Для каждой таблицы нужно будет удалить неправильные политики и создать корректные записи для SELECT, INSERT, UPDATE и DELETE, которые учитывают идентификаторы пользователей вместо простого аутентификации.

Подводя итог, важно помнить: внедрение алгоритмов безопасности и контроль их работы на начальных стадиях разработки приложений может сохранить данные пользователей и минимизировать риски утечек. Следите за своими настройками RLS в Supabase и не позволяйте ошибкам снижать уровень безопасности ваших приложений.

Поделиться: Telegram X LinkedIn