FixVibe
Covered by FixVibehigh

Next.js + Supabase လုံခြုံအောင်ပြုလုပ်ခြင်း- အတန်းအဆင့်လုံခြုံရေး (RLS) ရှောင်ကွင်းမှုများကို လုံခြုံစေခြင်း

ZXCVFIXVIBESEG၂ Next.js နှင့် Supabase ဖြင့် တည်ဆောက်ထားသော အပလီကေးရှင်းများသည် ဒေတာကို ကာကွယ်ရန် Row Level Security (RLS) ကို မကြာခဏ အားကိုးပါသည်။ RLS ကို ဖွင့်ရန် ပျက်ကွက်ခြင်း သို့မဟုတ် Supabase ကလိုင်းယင့်ကို ပုံစံမှားသတ်မှတ်ခြင်းသည် ဒေတာဘေ့စ် ထိတွေ့မှုကို အပြည့်အဝ ဖြစ်စေနိုင်ပြီး၊ ခွင့်ပြုချက်မရှိဘဲ အသုံးပြုသူများအား ထိလွယ်ရှလွယ် မှတ်တမ်းများကို ဖတ်ရန် သို့မဟုတ် ပြုပြင်မွမ်းမံရန် ခွင့်ပြုပေးပါသည်။

CWE-284

ထိခိုက်မှု

Row Level Security (RLS) ကို ကောင်းစွာမလိုက်နာပါက ဒေတာဘေ့စ်ရှိ မှတ်တမ်းများကို ဖတ်ရန်၊ အပ်ဒိတ် သို့မဟုတ် ဖျက်ရန် အပလီကေးရှင်းယုတ္တိကို ကျော်လွှားနိုင်သည်။ ၎င်းသည် အများသူငှာ အမည်မသိ API သော့ကိုသာ အသုံးပြုခွင့်ရှိသည့် အသုံးပြုသူများထံ ကိုယ်ရေးကိုယ်တာ ခွဲခြားနိုင်သော အချက်အလက် (PII) သို့မဟုတ် အထိခိုက်မခံသော အပလီကေးရှင်းဒေတာကို မကြာခဏ ထိတွေ့မှုဖြစ်စေသည်။

အကြောင်းအရင်း

Supabase သည် [S1] ဒေတာလုံခြုံရေးအတွက် အခြေခံဖြစ်သော ဒေတာဘေ့စ်အဆင့်တွင် ဒေတာဝင်ရောက်ခွင့်ကို စီမံခန့်ခွဲရန် Postgres Row Level Security ကို အသုံးပြုပါသည်။ Next.js ပတ်ဝန်းကျင်တွင်၊ ဆော့ဖ်ဝဲအင်ဂျင်နီယာများသည် [S2] ဆာဗာဘက်သို့ တင်ဆက်နေစဉ်အတွင်း လုံခြုံရေးထိန်းသိမ်းထားရန် ကွတ်ကီးများနှင့် ဆက်ရှင်များကို မှန်ကန်စွာကိုင်တွယ်သည့် Supabase ဖောက်သည်များကို ဖန်တီးရပါမည်။ အားနည်းချက်များ သည် အများအားဖြင့် ပေါ်လာသောအခါ-

  • ဇယားများကို RLS ကိုဖွင့်ထားခြင်းမရှိပဲ ဖန်တီးထားသောကြောင့် ၎င်းတို့ကို အများသူငှာ anon သော့ [S1] မှတစ်ဆင့် ဝင်ရောက်ကြည့်ရှုနိုင်စေပါသည်။
  • Supabase ကလိုင်းယင့်သည် Next.js တွင် မှားယွင်းစွာဖွဲ့စည်းထားပြီး၊ အသုံးပြုသူအထောက်အထားစိစစ်ခြင်းတိုကင်များကို [S2] ဒေတာဘေ့စ်သို့ ကောင်းစွာမဖြတ်သန်းနိုင်ပါ။
  • Developer များသည် RLS မူဝါဒများ [S1] အားလုံးကို ကျော်သွားသည့် client-side ကုဒ်တွင် service_role သော့ကို မတော်တဆ အသုံးပြုမိပါသည်။

ZXCVFIXVIBESEG၁၀

ကွန်ကရစ်ပြင်ဆင်မှုများ

ZXCVFIXVIBESEG ၁၁

  • RLS ကိုဖွင့်ပါ- သင့် Supabase ဒေတာဘေ့စ် [S1] ရှိ ဇယားတိုင်းအတွက် Row Level Security ကို ဖွင့်ထားကြောင်း သေချာပါစေ။
  • မူဝါဒများကိုသတ်မှတ်ခြင်း- SELECT, INSERT, UPDATE, နှင့် DELETE လုပ်ဆောင်ချက်များအတွက် SELECT အတွက် သီးခြား Postgres မူဝါဒများကို ဖန်တီးပါ

ZXCVFIXVIBESEG၁၃

  • SSR ဖောက်သည်များကို အသုံးပြုပါ- @supabase/ssr ပက်ကေ့ဂျ်ကို အကောင်အထည်ဖော်ပါ Next.js တွင် server-side authentication နှင့် session persistence [S2] တွင် ဖောက်သည်များဖန်တီးရန် [S2]။

ZXCVFIXVIBESEG ၁၄

FixVibe စမ်းသပ်နည်း

FixVibe သည် ၎င်းကို အသုံးချပြီး-အက်ပ်နှင့် ပြန်လည်ပိုစစ်ဆေးမှုများမှတစ်ဆင့် ၎င်းကို အကျုံးဝင်ပြီးဖြစ်သည်။ Passive baas.supabase-rls မော်ဂျူးသည် Supabase URL နှင့် မူရင်း JavaScript အစုအဝေးများမှ anon-key အတွဲများကို ရှာဖွေတွေ့ရှိပြီး၊ အများသူငှာ ဇယားမက်တာဒေတာအတွက် PostgREST အား တောင်းဆိုကာ အမည်မသိဒေတာနှင့် ထိတွေ့မှုကို အတည်ပြုရန် အကန့်အသတ်ရှိသော ဖတ်ရှုရန်သာရွေးချယ်မှုများကို လုပ်ဆောင်သည်။ ENABLE ROW LEVEL SECURITY မပါဘဲ အများသူငှာ ဇယားများကို ဖန်တီးသည့် SQL ရွှေ့ပြောင်းမှုများကို အလံပြရန် repo.supabase.missing-rls ကိုလည်း လုပ်ဆောင်ပြီး လျှို့ဝှက်စကင်န်များသည် ဘရောက်ဆာသို့ မရောက်ရှိမီ ဝန်ဆောင်မှုကဏ္ဍကီး ထိတွေ့မှုကို ရှာဖွေသည်။