Pereiti prie turinio

Patikrinkite Supabase projektą pagal 45 OWASP Top 10:2025 taisykles ir ne tik

Prijunkite vieną projektą tik skaitymo režimu ir gaukite įvertintą ataskaitą su kiekvieno radinio taisymu čia pat, šiame puslapyje.

Komandoms, kurios su Lovable, Bolt, Cursor ar v0 kuria ant Supabase. Nemokama, be registracijos.

Patikrinti mano Supabase projektą

Nemokama, be registracijos. Tik skaitymas: jūsų projekte niekas nekeičiama.

  1. Prijunkite SupabasePatvirtinkite tik skaitymo prieigą svetainėje supabase.com.
  2. Atliekame 45 patikrasPrieiga ir RLS, prisijungimas, saugykla ir funkcijos, infrastruktūra. Tik katalogas ir nustatymai, niekada jūsų eilutės.
  3. Ataskaita ir promptas jūsų DI agentuiKiekvieno radinio taisymas ir promptas, kurį įklijuojate į Cursor, Claude Code ar Lovable. Saugoma tik jei ja pasidalijate.

Ką patikra mato

Skaitome

  • Duomenų bazės katalogą: lenteles, RLS žymas, politikas, teises, vaizdus, funkcijas, plėtinius, vaidmenis ir kas gali skaityti Vault
  • Auth nustatymus: slaptažodžių taisykles, el. pašto patvirtinimą, MFA, nukreipimo URL
  • Storage: bucket sąrašą, kurie iš jų vieši, ir jų dydžio bei failų tipų apribojimus
  • Edge Functions: sąrašą ir kiekvienos JWT nustatymą
  • Projekto nustatymus: Postgres versiją, atsargines kopijas, SSL, tinklo apribojimus, Data API eilučių ribą

Niekada neskaitome

  • Jūsų lentelių eilučių
  • API raktų ir paslapčių: Supabase kai kuriuos įtraukia į nustatymų atsakymus, o patikra juos atmeta vos gavusi, jų neišsaugo, neįrašo į žurnalą ir nerodo
  • Jūsų bucket saugomų failų
  • Jūsų programos kodo ir saugyklos (repozitorijos)

Ataskaita saugoma tik sukūrus bendrinimo nuorodą, daugiausia 7 dienas. Suteikta prieiga atšaukiama iškart po patikros.

Ko skaitymo prieiga patikrinti negali

  • A06 Nesaugus dizainas ir A10 Netinkamas išimtinių situacijų valdymas yra jūsų programos kode, o ne projekto nustatymuose.
  • Frontend priklausomybės (A03 npm dalis) ir į frontend kodą patekęs service_role raktas. Patikrinkite savo repozitoriją.
  • Prieigos taisyklės, esančios tik programos kode ar Edge Functions, pavyzdžiui plan = 'pro' patikra frontend dalyje. Nuskaitymas mato tik stulpelius, kuriuos pati duomenų bazė naudoja politikose, funkcijose ir auth hooks, todėl sėkmingas rašomų prieigos stulpelių rezultatas nereiškia, kad tie stulpeliai saugūs.
  • Ar vienas prisijungęs naudotojas gali skaityti kito naudotojo eilutes. Tam reikia testo su dviem tikrais naudotojais: kaip testuoti Supabase RLS

Supabase Security Advisor ir ši patikra

KlausimasSecurity AdvisorŠi patikra
Kur veikiaSupabase skydelyje, vienas projektas vienu metuŠiame puslapyje, po tik skaitymo OAuth, jūsų pasirinktam projektui
Ką skaitoDuomenų bazės lint taisyklesTas pačias lint taisykles kaip vieną patikrą, be to, auth, storage, Edge Functions, atsargines kopijas ir tinklo nustatymus
Kaip sugrupuoti rezultataiPagal lint taisyklęPagal OWASP Top 10:2025, įvardijant kategorijas, kurių negalima patikrinti
Ką gaunate taisymuiNuorodą į lint dokumentacijąKiekvienam radiniui SQL arba skydelio nustatymą ir promptą jūsų AI agentui
Ką galite pasiliktiSąrašą savo skydelyjePDF arba bendrinimo nuorodą, kuri nustoja galioti po 7 dienų

OWASP Top 10:2025 aprėptis

KategorijaPatikrosBūsena
A01 Sugadinta prieigos kontrolė18Aprėpta
A02 Neteisinga saugumo konfigūracija9Aprėpta
A03 Programinės įrangos tiekimo grandinės gedimai2Iš dalies Tik Postgres versija ir plėtiniai. npm priklausomybės yra jūsų repozitorijoje.
A04 Kriptografijos gedimai4Aprėpta
A05 Injekcija1Aprėpta
A06 Nesaugus dizainas0Netikrinama Nesaugus dizainas slypi tame, kaip veikia jūsų programa, o ne nustatymuose.
A07 Autentifikavimo gedimai8Aprėpta
A08 Programinės įrangos ar duomenų vientisumo gedimai1Aprėpta
A09 Saugumo žurnalų ir įspėjimų gedimai2Aprėpta
A10 Netinkamas išimtinių situacijų valdymas0Netikrinama Klaidų valdymas yra jūsų programos kode, kurio skaitymo prieiga niekada nemato.

Visos 45 patikros

PatikraIDOWASPBlogiausias atvejis
RLS išjungtas atskleistose lentelėserls_disabled_exposedA01Kritinė
Politikos, leidžiančios visas eilutespolicy_always_trueA01Aukšta
Politikos, pasitikinčios naudotojo metaduomenimispolicy_uses_user_metadataA01Aukšta
Anoniminiams lankytojams atviros rašymo politikosanon_write_policiesA01Aukšta
Vaizdai, apeinantys RLSviews_without_security_invokerA01Aukšta
Medžiagintieji vaizdai ar išorinės lentelės APImatviews_or_foreign_tables_exposedA01Vidutinė
Iš API iškviečiamos security definer funkcijossecurity_definer_executableA01Aukšta
Anoniminiams lankytojams atviros storage politikosstorage_objects_anon_policiesA01Aukšta
Vieši storage bucketpublic_bucketsA01Žema
Neapsaugoti Realtime privatūs kanalairealtime_messages_rlsA01Aukšta
Nenaudojamos rašymo teisės anoniminiams lankytojamsanon_table_grants_writeA01Žema
Vaidmenys, apeinantys RLSroles_bypass_rlsA01Aukšta
Prieigos stulpeliai, kuriuos prisijungę naudotojai gali keistiauthz_columns_writableA01Aukšta
Ištrynus ir vėl įterpus pasikeičia apsaugotas stulpelisdelete_insert_bypassA01Aukšta
Nereikalingos lentelių teisės prisijungusiems naudotojamsauthenticated_table_grants_extraA01Žema
Numatytosios teisės, kurios atveria naujus objektus APIdefault_privileges_api_rolesA01Žema
Security definer funkcijos, kurios tikrina current_userdefiner_checks_current_userA01Vidutinė
Politikos be vaidmens ar komandospolicies_without_to_or_forA01Žema
Supabase Security Advisor radiniaiadvisor_lintsA02Aukšta
Papildomos Data API atskleistos schemosextra_exposed_schemasA02Aukšta
Pakaitos simboliai nukreipimo URLredirect_wildcardsA02Vidutinė
Nukreipimo URL per http arba į localhostinsecure_redirect_urlsA02Vidutinė
Anoniminis prisijungimas įjungtasanonymous_signins_enabledA02Vidutinė
CAPTCHA išjungta registracijai ir prisijungimuicaptcha_disabledA02Vidutinė
Duomenų bazė atvira visiems IP adresamsnetwork_openA02Vidutinė
Vieši bucket be įkėlimo apribojimųpublic_bucket_no_limitsA02Žema
Data API atsakymams nėra eilučių ribospostgrest_max_rowsA02Vidutinė
Yra Postgres atnaujinimaspostgres_upgrade_availableA03Vidutinė
Įdiegti plėtiniaiextensions_listedA03Info
SSL neprivalomas duomenų bazės ryšiuosessl_enforcement_offA04Vidutinė
Prieigos raktai galioja ilgiau nei valandąjwt_expiry_longA04Vidutinė
Anoniminiams lankytojams skaitomi jautriai atrodantys stulpeliaisensitive_columns_exposedA04Aukšta
Vault paslaptys, skaitomos API vaidmenimsvault_secrets_exposedA04Kritinė
Iš eilučių sudaromas dinaminis SQLdynamic_sql_concatA05Vidutinė
Trumpas mažiausias slaptažodžio ilgispassword_min_lengthA07Aukšta
Nutekėjusių slaptažodžių apsauga išjungtaleaked_password_protection_offA07Vidutinė
El. pašto patvirtinimas išjungtasemail_confirm_offA07Aukšta
Saugus el. pašto keitimas išjungtassecure_email_change_offA07Vidutinė
Vienkartiniai kodai galioja ilgiau nei valandąotp_expiry_longA07Vidutinė
Neįjungtas joks daugiaveiksnis metodasmfa_unavailableA07Vidutinė
Refresh token rotacija išjungtarefresh_token_rotation_offA07Vidutinė
Slaptažodžio keitimas be pakartotinio patvirtinimopassword_change_no_reauthA07Žema
Edge Functions be JWT patikrosedge_functions_without_jwtA08Žema
pgaudit neįdiegtaspgaudit_missingA09Info
Atsarginių kopijų nerastabackups_or_pitrA09Vidutinė

Klausimai

Kuo tai skiriasi nuo Supabase Security Advisor?

Security Advisor rezultatai yra viena iš patikrų. Nuskaitymas papildomai tikrina auth nustatymus, storage politikas, Edge Functions, atsargines kopijas ir tinklo nustatymus, viską sugrupuoja pagal OWASP Top 10:2025 ir pateikia kiekvieno radinio taisymą.

Ar Supabase pagal numatytuosius nustatymus saugus?

Platformą prižiūri Supabase, bet prieigos taisyklės yra jūsų. Nauja lentelė, sukurta paprastu SQL, turi išjungtą Row Level Security, o politika, užrašyta kaip using (true), leidžia bet kam su anon raktu skaityti lentelę. Nuskaitymas ieško būtent tokių nustatymų.

Ką reiškia „RLS išjungtas“ ir kaip jį įjungti?

Kai RLS išjungtas lentelėje, esančioje atskleistoje schemoje, bet kas su jūsų anon raktu gali per Data API skaityti visas eilutes. Įjunkite jį komanda alter table public.jusu_lentele enable row level security; ir tada pridėkite norimos prieigos politikas.

Ar saugu, kad mano Supabase anon raktas yra naršyklėje?

Taip, anon (publishable) raktas skirtas būti viešas. Jis gali tik tai, ką leidžia jūsų teisės ir RLS politikos, todėl nuskaitymas jas ir tikrina. Raktas service_role apeina RLS ir niekada neturi patekti į naršyklę.

Patikrinkite savo projektą

Nemokama ir tik skaitymui. Ataskaita pasirodo šiame puslapyje.

Patikrinti mano Supabase projektą