Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка конфігурації та функцій Supabase

Перевірте проєкти Supabase перед деплоєм: сервісні ключі у змінних NEXT_PUBLIC_ або VITE_, секрети в config.toml, шаблони редиректів, що приймають будь-який сайт, відкриті Edge Functions із сервісним ключем і слабкі налаштування автентифікації.

$5.00

Що ви отримаєте: 1 файл · 47.97 KB · ZIP

Переглянути варіанти купівлі

Опис товару

NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY віддає кожному відвідувачеві ключ, який обходить усі політики Row Level Security, а "https://*.vercel.app/**" у списку редиректів дає змогу будь-кому з акаунтом Vercel отримувати magic-link та OAuth-редиректи ваших користувачів. Цей навик знаходить ці та інші наведені нижче помилки Supabase до деплою і підказує, як виправити кожну з них.

Ваш агент запускає сканер для supabase/config.toml (зокрема блоків гілок [remotes]), коду Edge Functions у supabase/functions, клієнтського й серверного коду на JavaScript і TypeScript (Next.js, SvelteKit, Nuxt, Vite, Astro, Expo), файлів Expo app.json та eas.json, файлів Python, Dart, Swift і Kotlin, у яких зберігаються ключі, а також файлів .env. Він зчитує роль усередині застарілих JWT-ключів, знає нові формати sb_publishable_ і sb_secret_, ігнорує фіксовані публічні ключі локального стеку CLI, не чіпає глибокі посилання застосунків (myapp://**), вважає значення env() і encrypted: посиланнями та оцінює налаштування реєстрації й паролів, лише якщо config.toml налаштовує розгорнутий проєкт, тож файл, який створює supabase init, не позначається. Він ніколи не запускає код і не підключається до Supabase. Результат: BLOCK, REVIEW або NOT FLAGGED із зазначенням файлу, рядка, причини та безпечнішого рішення. Секрети ніколи не виводяться.

Що перевіряється

BLOCK (виправити до випуску)

  • U01: ключ service_role або секретний ключ у публічній змінній (NEXT_PUBLIC_, VITE_, EXPO_PUBLIC_, PUBLIC_ та інші, зокрема в eas.json), публічна змінна, що містить сервісний ключ, або сервісний ключ у Nuxt runtimeConfig.public, Expo extra (app.config або app.json), Next.js env чи Vite define
  • U02: JWT service_role або ключ sb_secret_, записаний у коді, app.json, eas.json чи закоміченому шаблоні env
  • U03: секрети OAuth, SMTP, SMS, CAPTCHA, auth hook, Studio, S3, Edge Runtime або Vault, записані в config.toml замість env()
  • U04: URL редиректів, шаблони яких приймають чужі сайти (** в імені хоста, зокрема шаблон попереднього перегляду Netlify з документації, *.com, *.vercel.app, *-*.vercel.app, *.netlify.app, *.pages.dev та інші спільні хостинги)

REVIEW (перевірити перед релізом)

  • U11: Edge Functions із вимкненою перевіркою JWT (verify_jwt = false, --no-verify-jwt, withSupabase auth 'none' або 'publishable'), які використовують сервісний ключ і ніяк не перевіряють сторону, що викликає (JWT користувача, секретний ключ, підпис вебхука або секретний заголовок)
  • U12: реєстрація через email без підтвердження email у розгорнутому проєкті
  • U13: мінімальна довжина пароля менше 8 у розгорнутому проєкті
  • U14: анонімний вхід без CAPTCHA у розгорнутому проєкті
  • U15: термін дії JWT понад одну годину, вимкнена ротація refresh-токенів, підтвердження зміни email лише через одну адресу або пропущена перевірка nonce у розгорнутому проєкті
  • U16: URL сайту або редиректів зі звичайним http:// для нелокальних хостів
  • U17: публічні бакети сховища в config.toml або створені в коді, якщо тільки слова в назві не вказують на публічний вміст, наприклад avatars чи profile-pictures
  • U18: getSession(), якому довіряють у серверному коді (middleware, proxy, обробники маршрутів, серверні компоненти та actions), без getClaims() або getUser()

Що входить до комплекту

  • Сканер (Python 3.9+, лише стандартна бібліотека)
  • Посібник із правил: причина, безпечніше рішення та офіційне джерело Supabase для кожного правила
  • Ризикований і безпечний приклади проєктів (config.toml, Edge Function, middleware для Next.js, скрипт seed і шаблон env), а також справжній звіт сканера щодо ризикованого проєкту

Обмеження

Сканер читає файли так, як вони записані: налаштування, змінені лише в панелі керування Supabase, політики Row Level Security і SQL-міграції, а також секрети, задані через supabase secrets set, йому невідомі. Перевірку сторони, що викликає Edge Function, сканер шукає в тому самому файлі, а для U11 потрібна тека проєкту, де лежить config.toml або скрипт деплою. Доступність у браузері визначається за префіксами змінних і налаштуваннями Nuxt, Expo, Next.js env та Vite define, а не відстеженням імпортів. NOT FLAGGED не є гарантією.

Вміст

Один ZIP-архів із 19 файлами: SKILL.md, сканер у scripts/ (8 файлів Python), references/rules.md (кожне правило з причиною та безпечнішим рішенням) і examples/ (10 файлів-прикладів плюс report.md, справжній звіт сканера щодо ризикованого прикладу).

Як використовувати: Це навик для агента: тека з файлом SKILL.md і скриптами на Python, які може запускати ШІ-агент для програмування, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте архів у теку навичок вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого встановлювати не потрібно. Вони лише читають ваші файли: без доступу до мережі, жодні дані нікуди не надсилаються.

Що ви отримаєте

1 файл · 47.97 KB

  • supabase-config-functions-check-1.0.0.zipZIP · 47.97 KB
ЛіцензіяКомерційне використання дозволено
Перевірка пакетаПройдено

Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.

Опубліковано12 лист. 2026 р.
Розмір файлу47.97 KB
Формат файлуZIP
Версіяv1.0

Теги

supabaseedge-functionsauthsecurityapi-keysai agent skill
R
RR HH

Поширені запитання

Чи отримаю я доступ одразу?

Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.

Чи можна використовувати його в комерційних проєктах?

Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.

Яка у вас політика повернення коштів?

Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.

Які формати та розміри файлів я отримаю?

Ви завантажите 1 файл - ZIP - загалом 47.97 KB.

Чи отримую я безкоштовні оновлення?

Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.

Ціна

$5.00