Přejít na obsah

Zkontrolujte projekt Supabase podle 45 pravidel OWASP Top 10:2025 a dalších

Připojte jeden projekt jen pro čtení a získejte ohodnocenou zprávu s opravou ke každému nálezu přímo na této stránce.

Pro týmy, které na Supabase stavějí s Lovable, Bolt, Cursor nebo v0. Zdarma, bez registrace.

Zkontrolovat můj projekt Supabase

Zdarma, bez registrace. Jen pro čtení: nic ve vašem projektu se nemění.

  1. Připojte SupabaseSchvalte přístup jen pro čtení na supabase.com.
  2. Spustíme 45 kontrolPřístup a RLS, přihlašování, úložiště a funkce, infrastruktura. Jen katalog a nastavení, nikdy vaše řádky.
  3. Zpráva a prompt pro vašeho AI agentaOprava ke každému nálezu a prompt, který vložíte do Cursoru, Claude Code nebo Lovable. Uloží se, jen když ji sdílíte.

Co kontrola vidí

Čteme

  • Katalog databáze: tabulky, příznaky RLS, politiky, oprávnění, pohledy, funkce, rozšíření, role a kdo smí číst Vault
  • Nastavení autentizace: pravidla hesel, potvrzení e-mailu, MFA, přesměrovací URL
  • Storage: seznam bucketů, které z nich jsou veřejné, a jejich limity velikosti a typů souborů
  • Edge Functions: seznam a nastavení JWT u každé z nich
  • Nastavení projektu: verze Postgresu, zálohy, SSL, omezení sítě, limit řádků v Data API

Nikdy nečteme

  • Řádky ve vašich tabulkách
  • API klíče a tajné údaje: Supabase některé vrací v odpovědích s nastavením a kontrola je při příchodu zahodí, aniž by je uložila, zaznamenala nebo zobrazila
  • Soubory uložené ve vašich bucketech
  • Kód vaší aplikace a repozitář

Zpráva se uloží jen tehdy, když vytvoříte odkaz ke sdílení, nejvýše na 7 dní. Udělený přístup se po kontrole hned odvolá.

Co přístup jen pro čtení zkontrolovat nemůže

  • A06 Nezabezpečený návrh a A10 Nesprávné zacházení s výjimečnými stavy jsou v kódu vaší aplikace, ne v nastavení projektu.
  • Závislosti frontendu (část A03 kolem npm) a klíč service_role zabalený do frontendového kódu. Ověřte je ve svém repozitáři.
  • Pravidla přístupu, která existují jen v kódu aplikace nebo v Edge Functions, například kontrola plan = 'pro' ve frontendu. Sken vidí jen sloupce, které samotná databáze používá v politikách, funkcích a auth hoocích, takže úspěšný výsledek u zapisovatelných přístupových sloupců neznamená, že jsou tyto sloupce bezpečné.
  • Zda jeden přihlášený uživatel může číst řádky jiného uživatele. K tomu je potřeba test se dvěma skutečnými uživateli: jak testovat RLS v Supabase

Supabase Security Advisor a tato kontrola

OtázkaSecurity AdvisorTato kontrola
Kde to běžíV dashboardu Supabase, vždy jeden projektNa této stránce, po OAuth jen pro čtení, pro projekt, který si vyberete
Co čteLintery databázeStejné lintery jako jedna kontrola, k tomu autentizaci, storage, Edge Functions, zálohy a nastavení sítě
Jak jsou výsledky seskupenéPodle linteruPodle OWASP Top 10:2025, s uvedenými kategoriemi, které nelze zkontrolovat
Co dostanete k opravěOdkaz na dokumentaci linteruSQL nebo nastavení v dashboardu ke každému nálezu a prompt pro vašeho AI agenta
Co si můžete ponechatSeznam ve vašem dashboarduPDF nebo odkaz ke sdílení, který po 7 dnech vyprší

Pokrytí OWASP Top 10:2025

KategorieKontrolyStav
A01 Narušené řízení přístupu18Pokryto
A02 Chybná konfigurace zabezpečení9Pokryto
A03 Selhání v dodavatelském řetězci softwaru2Částečně Jen verze Postgresu a rozšíření. Závislosti z npm jsou ve vašem repozitáři.
A04 Selhání kryptografie4Pokryto
A05 Injektáž1Pokryto
A06 Nezabezpečený návrh0Nelze zkontrolovat Nezabezpečený návrh je v tom, jak aplikace funguje, ne v nastavení.
A07 Selhání autentizace8Pokryto
A08 Selhání integrity softwaru nebo dat1Pokryto
A09 Selhání logování a upozorňování na bezpečnostní události2Pokryto
A10 Nesprávné zacházení s výjimečnými stavy0Nelze zkontrolovat Ošetření chyb je v kódu vaší aplikace, který přístup jen pro čtení nevidí.

Všech 45 kontrol

KontrolaIDOWASPNejhorší případ
RLS vypnuté u zpřístupněných tabulekrls_disabled_exposedA01Kritická
Politiky, které povolují každý řádekpolicy_always_trueA01Vysoká
Politiky, které věří metadatům uživatelepolicy_uses_user_metadataA01Vysoká
Politiky zápisu otevřené anonymním návštěvníkůmanon_write_policiesA01Vysoká
Pohledy, které obcházejí RLSviews_without_security_invokerA01Vysoká
Materializované pohledy nebo cizí tabulky v APImatviews_or_foreign_tables_exposedA01Střední
Funkce security definer volatelné z APIsecurity_definer_executableA01Vysoká
Politiky Storage otevřené anonymním návštěvníkůmstorage_objects_anon_policiesA01Vysoká
Veřejné buckety ve Storagepublic_bucketsA01Nízká
Soukromé kanály Realtime bez ochranyrealtime_messages_rlsA01Vysoká
Nepoužívaná oprávnění k zápisu pro anonymní návštěvníkyanon_table_grants_writeA01Nízká
Role, které obcházejí RLSroles_bypass_rlsA01Vysoká
Přístupové sloupce, které přihlášení uživatelé mohou měnitauthz_columns_writableA01Vysoká
Smazání a nové vložení změní chráněný sloupecdelete_insert_bypassA01Vysoká
Zbytečná oprávnění k tabulkám pro přihlášené uživateleauthenticated_table_grants_extraA01Nízká
Výchozí oprávnění, která otevírají nové objekty APIdefault_privileges_api_rolesA01Nízká
Funkce security definer, které kontrolují current_userdefiner_checks_current_userA01Střední
Politiky bez role nebo příkazupolicies_without_to_or_forA01Nízká
Nálezy Supabase Security Advisoruadvisor_lintsA02Vysoká
Další schémata zpřístupněná v Data APIextra_exposed_schemasA02Vysoká
Zástupné znaky v přesměrovacích URLredirect_wildcardsA02Střední
Přesměrovací URL přes http nebo na localhostinsecure_redirect_urlsA02Střední
Anonymní přihlášení zapnutéanonymous_signins_enabledA02Střední
CAPTCHA vypnutá při registraci a přihlášenícaptcha_disabledA02Střední
Databáze otevřená všem IP adresámnetwork_openA02Střední
Veřejné buckety bez limitů nahrávánípublic_bucket_no_limitsA02Nízká
Žádný limit řádků v odpovědích Data APIpostgrest_max_rowsA02Střední
K dispozici je upgrade Postgresupostgres_upgrade_availableA03Střední
Nainstalovaná rozšířeníextensions_listedA03Info
SSL se u připojení k databázi nevynucujessl_enforcement_offA04Střední
Přístupové tokeny platí déle než hodinujwt_expiry_longA04Střední
Sloupce vypadající citlivě čitelné pro anonymní návštěvníkysensitive_columns_exposedA04Vysoká
Tajemství ve Vaultu čitelná pro role APIvault_secrets_exposedA04Kritická
Dynamické SQL skládané z řetězcůdynamic_sql_concatA05Střední
Krátká minimální délka heslapassword_min_lengthA07Vysoká
Ochrana před uniklými hesly vypnutáleaked_password_protection_offA07Střední
Potvrzení e-mailu vypnutéemail_confirm_offA07Vysoká
Zabezpečená změna e-mailu vypnutásecure_email_change_offA07Střední
Jednorázové kódy platí déle než hodinuotp_expiry_longA07Střední
Není zapnutá žádná metoda vícefaktorového ověřenímfa_unavailableA07Střední
Rotace refresh tokenů vypnutárefresh_token_rotation_offA07Střední
Změna hesla bez opětovného ověřenípassword_change_no_reauthA07Nízká
Edge Functions bez ověření JWTedge_functions_without_jwtA08Nízká
pgaudit není nainstalovanýpgaudit_missingA09Info
Nenalezeny žádné zálohybackups_or_pitrA09Střední

Otázky

Čím se to liší od Supabase Security Advisoru?

Výsledky Security Advisoru jsou jednou z kontrol. Kontrola k nim přidává nastavení autentizace, politiky storage, Edge Functions, zálohy a nastavení sítě, všechno seskupuje podle OWASP Top 10:2025 a ke každému nálezu dává opravu.

Je Supabase ve výchozím stavu zabezpečený?

Platformu spravuje Supabase, ale pravidla přístupu jsou vaše. Nová tabulka vytvořená čistým SQL má Row Level Security vypnuté a politika zapsaná jako using (true) dovolí číst tabulku každému s klíčem anon. Kontrola hledá právě tato nastavení.

Co znamená „RLS disabled“ a jak ho zapnout?

Když je RLS u tabulky ve zpřístupněném schématu vypnuté, přečte přes Data API každý řádek kdokoli s klíčem anon. Zapnete ho příkazem alter table public.your_table enable row level security; a pak přidáte politiky pro přístup, který chcete.

Je v pořádku, že můj klíč anon od Supabase je v prohlížeči?

Ano, klíč anon (publishable) je určený k tomu, aby byl veřejný. Dokáže jen to, co dovolují vaše oprávnění a politiky RLS, a proto je kontrola ověřuje. Klíč service_role RLS obchází a nesmí se nikdy dostat do prohlížeče.

Zkontrolujte svůj projekt

Zdarma a jen pro čtení. Zpráva se zobrazí na této stránce.

Zkontrolovat můj projekt Supabase