FixVibe
Covered by FixVibehigh

Next.js + Supabase සුරක්ෂිත කිරීම: පේළි මට්ටමේ ආරක්ෂාව වැළැක්වීම (RLS) මගහැරීම්

Next.js සහ Supabase සමඟ ගොඩනගා ඇති යෙදුම් බොහෝ විට දත්ත ආරක්ෂා කිරීම සඳහා පේළි මට්ටමේ ආරක්ෂාව (RLS) මත රඳා පවතී. RLS සබල කිරීමට අපොහොසත් වීම හෝ Supabase සේවාලාභියා වැරදි ලෙස වින්‍යාස කිරීම සම්පූර්ණ දත්ත සමුදාය නිරාවරණය වීමට හේතු විය හැක, අනවසර පරිශීලකයින්ට සංවේදී වාර්තා කියවීමට හෝ වෙනස් කිරීමට ඉඩ සලසයි.

CWE-284

බලපෑම

පේළි මට්ටමේ ආරක්ෂාව (RLS) [S1] නිසි ලෙස බලාත්මක කර නොමැති නම්, ප්‍රහාරකයන්ට දත්ත සමුදායේ වාර්තා කියවීමට, යාවත්කාලීන කිරීමට හෝ මැකීමට යෙදුම් තර්කය මඟ හැරිය හැක. මෙය බොහෝ විට පොදු නිර්නාමික API යතුරට පමණක් ප්‍රවේශය ඇති පරිශීලකයින්ට පුද්ගලිකව හඳුනාගත හැකි තොරතුරු (PII) හෝ සංවේදී යෙදුම් දත්ත නිරාවරණය වීමට හේතු වේ.

මූල හේතුව

Supabase දත්ත ගබඩා මට්ටමින් දත්ත ප්‍රවේශය කළමනාකරණය කිරීම සඳහා Postgres Row Level ආරක්ෂාව භාවිතා කරයි, එය [S1] දත්ත සුරක්ෂිත කිරීම සඳහා මූලික වේ. Next.js පරිසරයක් තුළ, සංවර්ධකයින් විසින් [S2] සේවාදායක පාර්ශ්ව විදැහුම්කරණයේදී ආරක්ෂාව පවත්වා ගැනීම සඳහා කුකීස් සහ සැසි නිවැරදිව හසුරුවන Supabase සේවාලාභියෙකු නිර්මාණය කළ යුතුය. අවදානම් සාමාන්‍යයෙන් පැන නගින්නේ:

  • RLS සක්‍රීය නොකර වගු සාදනු ලබන අතර, ඒවාට පොදු ඇනෝන් යතුර [S1] හරහා ප්‍රවේශ විය හැක.
  • Supabase සේවාලාභියා Next.js හි වැරදි ලෙස වින්‍යාස කර ඇත, [S2] දත්ත ගබඩාවට පරිශීලක සත්‍යාපන ටෝකන නිසි ලෙස ලබා දීමට අපොහොසත් වේ.
  • සියලුම RLS ප්‍රතිපත්ති [S1] මඟහරින සේවාලාභී පාර්ශවීය කේතය තුළ සංවර්ධකයින් අහම්බෙන් service_role යතුර භාවිත කරයි.

කොන්ක්‍රීට් සවි කිරීම්

  • RLS සබල කරන්න: ඔබේ Supabase දත්ත ගබඩාවේ [S1] සෑම වගුවකටම පේළි මට්ටමේ ආරක්ෂාව සබල කර ඇති බව සහතික කර ගන්න.
  • ප්‍රතිපත්ති නිර්වචනය කරන්න: SELECT, INSERT, UPDATE, සහ DELETE සඳහා නිශ්චිත Postgres ප්‍රතිපත්ති සාදන්න Ussid ප්‍රවේශය සීමා කිරීමට [S1].
  • SSR සේවාලාභීන් භාවිතා කරන්න: @supabase/ssr පැකේජය ක්‍රියාත්මක කර Next.js හි සේවාදායක සත්‍යාපනය සහ සැසි කල්පැවැත්ම නිවැරදිව කළමනාකරණය කරන [S2].

FixVibe ඒ සඳහා පරීක්ෂා කරන ආකාරය

FixVibe දැනටමත් යෙදවූ-යෙදුම සහ repo චෙක්පත් හරහා මෙය ආවරණය කරයි. උදාසීන baas.supabase-rls මොඩියුලය එකම සම්භවයක් ඇති JavaScript මිටි වලින් Supabase URL සහ ඇනොන්-යතුරු යුගල සොයා ගනී, පොදු වගු පාරදත්ත සඳහා PostgREST අසයි, සහ නිර්නාමික දත්ත නිරාවරණ දත්ත තහවුරු කිරීම සඳහා සීමිත කියවීමට පමණක් තේරීම් සිදු කරයි. ENABLE ROW LEVEL SECURITY නොමැතිව පොදු වගු නිර්මාණය කරන SQL සංක්‍රමණ සලකුණු කිරීමට Repo ස්කෑන් repo.supabase.missing-rls ධාවනය කරයි, සහ රහස් ස්කෑන් මඟින් එය බ්‍රවුසරයට ළඟා වීමට පෙර සේවා-භූමකාමී යතුර නිරාවරණය සඳහා සොයයි.