Сканировали 100 проектов на Supabase — 22% сливают данные пользователей анонимно

22% проектов на Supabase оставляют дверь открытой — анонимный доступ к данным пользователей. Пора закрывать люк.
Разработчики, любите ли вы Supabase так, как любят его маркетологи? Оказывается, многие любят его настолько, что забывают закрыть за собой дверь. Один смельчак просканировал 100 случайных проектов на Supabase и обнаружил, что 22% из них позволяют анонимно читать пользовательские данные. Это как оставить ключи от квартиры под ковриком — только коврик виртуальный, а квартира — база данных.
Исследователь (назовём его Белым Хакером без плаща) не использовал никаких суперспособностей. Просто взял публичные эндпоинты Supabase и проверил, настроены ли RLS-политики (Row Level Security). Спойлер: у 22 проектов RLS либо отсутствовал, либо был настроен "на отвали". В результате любой, кто знает URL проекта, мог получить доступ к данным — от email'ов до паролей в открытом виде. Причём эти проекты не были заброшенными песочницами: среди них встречались и реальные приложения с пользователями.
Почему так происходит? Причины стары как мир: халатность, дедлайны, надежда на "авось" и, конечно, магия "это же BaaS, оно само всё защитит". Supabase из коробки даёт удобные API, но безопасность — это ответственность разработчика. Если вы думаете, что ваш проект слишком мал для атаки — вспомните, что скрипты бродят по сети и не спрашивают размер.
Как это исправить? Во-первых, включите RLS для всех таблиц. Во-вторых, используйте сервисные роли только на сервере. В-третьих, не храните секреты в клиентском коде. И да, проведите аудит — лучше сейчас, чем после утечки.
Комментарий студии METABYTE: Мы всегда говорили: "Доверяй, но проверяй". Supabase — отличный инструмент, но даже самый крутой швейцарский нож может порезать палец, если не знать, с какой стороны браться. Хотите, чтобы ваш проект был не только быстрым, но и безопасным? Закажите аудит у нас — мы найдём дыры, которые вы даже не подозревали.