Siirry sisältöön

Tarkista Supabase-projektisi 45 OWASP Top 10:2025 -säännön mukaan ja enemmän

Yhdistä yksi projekti vain luku -oikeudella ja saat arvosanalla varustetun raportin, jossa jokaiselle löydökselle on korjaus, suoraan tällä sivulla.

Tiimeille, jotka rakentavat Supabasen päälle Lovablella, Boltilla, Cursorilla tai v0:lla. Ilmainen, ei rekisteröitymistä.

Tarkista Supabase-projektini

Ilmainen, ei rekisteröitymistä. Vain luku: projektiisi ei muuteta mitään.

  1. Yhdistä SupabaseHyväksy vain luku -pääsy osoitteessa supabase.com.
  2. Ajamme 45 tarkistustaPääsy ja RLS, kirjautuminen, tallennus ja funktiot, infrastruktuuri. Vain katalogi ja asetukset, ei koskaan rivejäsi.
  3. Raportti ja prompti AI-agentillesiKorjaus jokaiselle löydökselle sekä prompti, jonka liität Cursoriin, Claude Codeen tai Lovableen. Tallennetaan vain, jos jaat sen.

Mitä tarkistus näkee

Luemme

  • Tietokantakatalogi: taulut, RLS-liput, käytännöt, oikeudet, näkymät, funktiot, laajennukset, roolit ja kuka saa lukea Vaultia
  • Auth-asetukset: salasanasäännöt, sähköpostin vahvistus, MFA, uudelleenohjaus-URL:t
  • Storage: bucket-luettelo, mitkä bucketit ovat julkisia sekä niiden koko- ja tiedostotyyppirajat
  • Edge Functions: luettelo ja kunkin JWT-asetus
  • Projektin asetukset: Postgres-versio, varmuuskopiot, SSL, verkkorajoitukset, Data API:n rivikatto

Emme koskaan lue

  • Taulujesi rivejä
  • API-avaimia ja salaisuuksia: Supabase sisällyttää joitakin asetusvastauksiin, ja skannaus hylkää ne saapuessaan tallentamatta, kirjaamatta tai näyttämättä niitä
  • Bucketeissasi olevia tiedostoja
  • Sovelluksesi koodia ja repositoriota

Raportti tallennetaan vain, kun luot jakolinkin, enintään 7 päiväksi. Pääsyoikeus peruutetaan heti tarkistuksen jälkeen.

Mitä vain luku -pääsy ei voi tarkistaa

  • A06 Turvaton suunnittelu ja A10 Poikkeustilanteiden virheellinen käsittely ovat sovelluksesi koodissa, eivät projektin asetuksissa.
  • Frontendin riippuvuudet (A03:n npm-osuus) ja frontend-koodiin päätynyt service_role-avain. Tarkista ne repositoriostasi.
  • Pääsysäännöt, jotka ovat vain sovelluskoodissa tai Edge Functionsissa, kuten frontendin plan = 'pro' -tarkistus. Skannaus näkee vain sarakkeet, joita tietokanta itse käyttää käytännöissä, funktioissa ja auth hookeissa, joten läpimeno kirjoitettavien pääsysarakkeiden kohdalla ei tarkoita, että ne ovat turvassa.
  • Voiko yksi kirjautunut käyttäjä lukea toisen käyttäjän rivejä. Se vaatii testin kahdella oikealla käyttäjällä: näin testaat Supabase RLS:n

Supabase Security Advisor ja tämä tarkistus

KysymysSecurity AdvisorTämä tarkistus
Missä se ajetaanSupabase-dashboardissa, yksi projekti kerrallaanTällä sivulla vain luku -OAuthin jälkeen, valitsemallesi projektille
Mitä se lukeeTietokannan lint-tarkistuksetSamat lint-tarkistukset yhtenä tarkistuksena sekä auth, storage, Edge Functions, varmuuskopiot ja verkkoasetukset
Miten tulokset ryhmitelläänLint-tarkistuksen mukaanOWASP Top 10:2025 -luokittain, ja luokat, joita se ei voi tarkistaa, on nimetty
Mitä saat korjaamiseenLinkin lint-dokumentaatioonSQL:n tai dashboardin asetuksen jokaiselle löydökselle sekä promptin tekoälyagentillesi
Mitä voit säilyttääDashboardisi luettelonPDF:n tai jakolinkin, joka vanhenee 7 päivässä

OWASP Top 10:2025 -kattavuus

LuokkaTarkistuksiaTila
A01 Rikkoutunut pääsynhallinta18Katettu
A02 Virheellinen tietoturvakonfiguraatio9Katettu
A03 Ohjelmistotoimitusketjun virheet2Osittain Vain Postgres-versio ja laajennukset. npm-riippuvuudet ovat repositoriossasi.
A04 Kryptografiset virheet4Katettu
A05 Injektio1Katettu
A06 Turvaton suunnittelu0Ei tarkistettavissa Turvaton suunnittelu on siinä, miten sovelluksesi toimii, ei asetuksissa.
A07 Tunnistautumisen virheet8Katettu
A08 Ohjelmiston tai datan eheyden virheet1Katettu
A09 Tietoturvalokituksen ja hälytysten virheet2Katettu
A10 Poikkeustilanteiden virheellinen käsittely0Ei tarkistettavissa Virheenkäsittely on sovelluksesi koodissa, jota vain luku -pääsy ei koskaan näe.

Kaikki 45 tarkistusta

TarkistusIDOWASPPahin tapaus
RLS pois päältä julkaistuissa tauluissarls_disabled_exposedA01Kriittinen
Käytännöt, jotka päästävät läpi jokaisen rivinpolicy_always_trueA01Korkea
Käyttäjän metadataan luottavat käytännötpolicy_uses_user_metadataA01Korkea
Anonyymeille kävijöille avoimet kirjoituskäytännötanon_write_policiesA01Korkea
RLS:n ohittavat näkymätviews_without_security_invokerA01Korkea
Materialisoidut näkymät tai vierastaulut API:ssamatviews_or_foreign_tables_exposedA01Keskitaso
API:sta kutsuttavat security definer -funktiotsecurity_definer_executableA01Korkea
Anonyymeille kävijöille avoimet storage-käytännötstorage_objects_anon_policiesA01Korkea
Julkiset storage-bucketitpublic_bucketsA01Matala
Suojaamattomat yksityiset Realtime-kanavatrealtime_messages_rlsA01Korkea
Anonyymien kävijöiden käyttämättömät kirjoitusoikeudetanon_table_grants_writeA01Matala
Roolit, jotka ohittavat RLS:nroles_bypass_rlsA01Korkea
Pääsysarakkeet, joita kirjautuneet käyttäjät voivat muuttaaauthz_columns_writableA01Korkea
Poisto ja uudelleenlisäys muuttaa suojattua sarakettadelete_insert_bypassA01Korkea
Tarpeettomat tauluoikeudet kirjautuneille käyttäjilleauthenticated_table_grants_extraA01Matala
Oletusoikeudet, jotka avaavat uudet objektit API:lledefault_privileges_api_rolesA01Matala
Security definer -funktiot, jotka tarkistavat current_user-arvondefiner_checks_current_userA01Keskitaso
Käytännöt ilman roolia tai komentoapolicies_without_to_or_forA01Matala
Supabase Security Advisorin löydöksetadvisor_lintsA02Korkea
Ylimääräisiä skeemoja julkaistu Data API:ssaextra_exposed_schemasA02Korkea
Jokerimerkit uudelleenohjaus-URL:issaredirect_wildcardsA02Keskitaso
Uudelleenohjaus-URL:t http:n kautta tai localhostiininsecure_redirect_urlsA02Keskitaso
Anonyymi kirjautuminen käytössäanonymous_signins_enabledA02Keskitaso
CAPTCHA pois päältä rekisteröitymisessä ja kirjautumisessacaptcha_disabledA02Keskitaso
Tietokanta avoin kaikille IP-osoitteillenetwork_openA02Keskitaso
Julkiset bucketit ilman latausrajojapublic_bucket_no_limitsA02Matala
Data API:n vastauksilla ei ole rivikattoapostgrest_max_rowsA02Keskitaso
Postgres-päivitys saatavillapostgres_upgrade_availableA03Keskitaso
Asennetut laajennuksetextensions_listedA03Tieto
SSL:ää ei vaadita tietokantayhteyksissässl_enforcement_offA04Keskitaso
Pääsytunnukset voimassa yli tunninjwt_expiry_longA04Keskitaso
Arkaluonteisen oloiset sarakkeet anonyymien kävijöiden luettavissasensitive_columns_exposedA04Korkea
Vaultin salaisuudet API-roolien luettavissavault_secrets_exposedA04Kriittinen
Merkkijonoista rakennettu dynaaminen SQLdynamic_sql_concatA05Keskitaso
Lyhyt salasanan vähimmäispituuspassword_min_lengthA07Korkea
Vuotaneiden salasanojen suojaus pois päältäleaked_password_protection_offA07Keskitaso
Sähköpostin vahvistus pois päältäemail_confirm_offA07Korkea
Turvallinen sähköpostin vaihto pois päältäsecure_email_change_offA07Keskitaso
Kertakäyttökoodit voimassa yli tunninotp_expiry_longA07Keskitaso
Monivaiheista tunnistautumista ei ole käytössämfa_unavailableA07Keskitaso
Refresh-tunnuksen kierrätys pois päältärefresh_token_rotation_offA07Keskitaso
Salasanan vaihto ilman uudelleentunnistustapassword_change_no_reauthA07Matala
Edge Functions -funktiot ilman JWT-varmennustaedge_functions_without_jwtA08Matala
pgauditia ei ole asennettupgaudit_missingA09Tieto
Varmuuskopioita ei löytynytbackups_or_pitrA09Keskitaso

Kysymyksiä

Miten tämä eroaa Supabase Security Advisorista?

Security Advisorin tulokset ovat yksi tarkistuksista. Skannaus lisää auth-asetukset, storage-käytännöt, Edge Functions -funktiot, varmuuskopiot ja verkkoasetukset, ryhmittelee kaiken OWASP Top 10:2025 -luokkiin ja antaa korjauksen jokaiselle löydökselle.

Onko Supabase oletuksena turvallinen?

Alustaa ylläpitää Supabase, mutta pääsysäännöt ovat sinun. Tavallisella SQL:llä luodussa uudessa taulussa Row Level Security on pois päältä, ja käytäntö muotoa using (true) antaa kenen tahansa anon-avaimen haltijan lukea taulun. Skannaus etsii juuri näitä asetuksia.

Mitä “RLS disabled” tarkoittaa, ja miten sen otetaan käyttöön?

Kun RLS on pois päältä taulussa, joka on julkaistussa skeemassa, kuka tahansa anon-avaimesi haltija voi lukea jokaisen rivin Data API:n kautta. Ota se käyttöön komennolla alter table public.sinun_taulu enable row level security; ja lisää sitten käytännöt haluamallesi pääsylle.

Onko turvallista, että Supabasen anon-avain on selaimessa?

Kyllä, anon-avain (publishable) on tarkoitettu julkiseksi. Se voi tehdä vain sen, minkä oikeutesi ja RLS-käytäntösi sallivat, ja siksi skannaus tarkistaa juuri ne. service_role-avain ohittaa RLS:n eikä saa koskaan päätyä selaimeen.

Tarkista oma projektisi

Ilmainen ja vain luku. Raportti näkyy tällä sivulla.

Tarkista Supabase-projektini