Таасири
Катар деңгээлинин коопсуздугу (RLS) [S1] талаптагыдай аткарылбаса, чабуулчулар маалымат базасындагы жазууларды окуу, жаңыртуу же жок кылуу үчүн колдонмо логикасын айланып өтүшү мүмкүн. Бул көбүнчө жалпыга ачык анонимдүү API ачкычын колдонууга мүмкүнчүлүгү бар колдонуучуларга Жеке Идентификациялоочу Маалыматтын (PII) же купуя колдонмо маалыматтарынын ачыкка чыгышына алып келет.
Негизги себеп
Supabase [S1] берилиштерин коргоо үчүн негиз болгон маалыматтар базасынын деңгээлинде берилиштерге жетүүнү башкаруу үчүн Postgres Row Level Security колдонот. Next.js чөйрөсүндө иштеп чыгуучулар [S2] сервер тарабында көрсөтүү учурунда коопсуздукту сактоо үчүн кукилерди жана сеанстарды туура иштеткен Supabase кардарын түзүшү керек. Абалдар, адатта, төмөнкү учурларда пайда болот:
- Таблицалар RLS иштетилбестен түзүлүп, аларды [S1] коомдук анон ачкычы аркылуу жеткиликтүү кылат.
- Supabase кардары Next.js ичинде туура эмес конфигурацияланган, ошондуктан колдонуучунун аныктыгын текшерүү белгилерин [S2] маалымат базасына туура өткөрө алган жок.
- Иштеп чыгуучулар кокустан
service_roleачкычын кардар тараптын кодунда колдонушат, ал бардык RLS [S1] саясаттарын кыйгап өтөт.
Бетон оңдоолор
- RLS иштетүү: Supabase [S1] базаңыздагы ар бир таблица үчүн Сап деңгээлинин коопсуздугу иштетилгенин текшериңиз.
- Саясаттарды аныктоо:
SELECT,INSERT,UPDATEжанаDELETEүчүн атайын Postgres саясаттарын түзүңүз. [S1]. - SSR Clients колдонуңуз:
@supabase/ssrтоптомун ишке ашырып, Next.js ичинде сервердик аутентификацияны жана сеанстын туруктуулугун [S2] туура башкарган кардарларды түзүңүз.
FixVibe аны кантип сынайт
FixVibe муну мурунтан эле орнотулган колдонмо жана репо текшерүүлөрү аркылуу камтыйт. Пассивдүү baas.supabase-rls модулу бир эле келип чыккан JavaScript таңгактарынан Supabase URL жана анон-ачкыч жуптарын таап, PostgRESTтен ачык таблица метаберилиштерин сурайт жана кардардын маалыматтарын мутациялоосуз анонимдүү маалыматтардын экспозициясын ырастоо үчүн чектелген окуу үчүн гана тандоолорду аткарат. Репо скандоолору ошондой эле ENABLE ROW LEVEL SECURITYсиз жалпы таблицаларды түзгөн SQL көчүрүүлөрүн белгилөө үчүн repo.supabase.missing-rls иштетет жана жашыруун сканерлөөлөр браузерге жеткенге чейин кызмат ролунун ачкычынын экспозициясын издейт.
