Jūsu Supabase datubāzi var nolasīt ikviens
Vispārīgas instrukcijas. Atveriet šo rakstu no sava PageCheck pārskata, lai redzētu to aizpildītu ar Jūsu domēna ierakstiem un precīziem soļiem Jūsu DNS pakalpojuma sniedzējam.
Kas tas ir
Jūsu vietne glabā saturu Supabase datubāzē. Lapa tai piekļūst ar publisku atslēgu, kas ir lapas koda daļa, tāpēc tā ir katra apmeklētāja pārlūkam. Šī atslēga ir paredzēta kā publiska — datus aizsargā katras tabulas piekļuves noteikumi (Supabase tos sauc par Row Level Security).
Kas ir nepareizi
Jūsu Supabase datubāze atbild uz publisko atslēgu un izvada savu tabulu sarakstu, tātad Row Level Security ir izslēgts vai nepilnīgs. Ikviens, kas atver Jūsu vietni, var nolasīt un bieži arī mainīt vai dzēst datus, kas ir aiz tās.
Kā labot
1. Ieslēdziet piekļuves noteikumus katrai tabulai. Supabase panelī atveriet Authentication → Policies (vai Table editor → katra tabula → Row Level Security) un ieslēdziet Row Level Security katrai public shēmas tabulai. Ja tā ir ieslēgta un nav neviena policy, publiskā atslēga neko nevar nolasīt.
2. Pievienojiet policy tikai tam, kas vajadzīgs publiskai piekļuvei. Ja kāda tabulas daļa tiešām ir publiska (piemēram, preču saraksts), pievienojiet policy, kas atļauj nolasīt tikai šīs rindas un kolonnas. Viss pārējais paliek privāts, un tam piekļūst tikai Jūsu servera puses kods, kas izmanto slepeno atslēgu, nevis lapā esošo atslēgu.
3. Pārbaudiet to no ārpuses. Atveriet vietni privātā pārlūka logā un pārliecinieties, ka tā joprojām darbojas, tad palaidiet šo pārbaudi vēlreiz. Publisko atslēgu mainīt nav vajadzīgs — tā ir paredzēta kā publiska; datus aizsargā piekļuves noteikumi.
Lock down my Supabase database: it is readable with the public anon key because Row Level Security is off. Project: <my .supabase.co project>. Steps: 1. List every table in the public schema and tell me which, if any, genuinely need to be readable by anonymous visitors. 2. Enable Row Level Security on every table in the public schema. 3. For the tables that must be public, add the narrowest SELECT policy that serves the site (only the needed rows and columns); leave the rest with no anon policy. 4. Make sure the app reads private data only through server-side code using the service_role key, never the anon key in the browser. 5. Give me the SQL for the policies and the exact dashboard steps, and tell me how to verify from an anonymous client that the private tables return nothing. Do not rotate the anon key — it is public by design; the fix is the access rules.
Tēma: example.com – mūsu Supabase datubāzi var nolasīt ikviens Labdien! Vietnes pārbaude (PageCheck) atklāja, ka mūsu vietnes Supabase datubāzi var nolasīt ar publisko atslēgu, kas ir lapā, jo Row Level Security ir izslēgts. Lūdzu: 1. Ieslēdziet Row Level Security katrai public shēmas tabulai. 2. Pievienojiet nolasīšanas policy tikai tiem datiem, kam tiešām jābūt publiskiem, un visu pārējo atstājiet privātu. 3. Pārliecinieties no ārpuses, ka privātās tabulas vairs nevar nolasīt un ka vietne joprojām darbojas. Publiskā atslēga nav jāmaina — tā ir paredzēta kā publiska. Paldies!
Pārbaudiet savu vietni, lai uzzinātu, vai tai ir šī problēma. Pārbaudīt vietni