FixVibe
Covered by FixVibehigh

ការធានាសុវត្ថិភាព Next.js + Supabase: ការការពារកម្រិតជួរដេក (RLS) ផ្លូវវាង

ZXCVFIXVIBESEG ២ កម្មវិធីដែលបង្កើតឡើងដោយ Next.js និង Supabase ជារឿយៗពឹងផ្អែកលើសុវត្ថិភាពកម្រិតជួរដេក (RLS) ដើម្បីការពារទិន្នន័យ។ ការខកខានក្នុងការបើកដំណើរការ RLS ឬការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនភ្ញៀវ Supabase មិនត្រឹមត្រូវអាចនាំឱ្យមានការលេចចេញនូវមូលដ្ឋានទិន្នន័យពេញលេញ ដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ដែលគ្មានការអនុញ្ញាតអាន ឬកែប្រែកំណត់ត្រារសើប។

CWE-284

ផលប៉ះពាល់

ZXCVFIXVIBESEG ៤ អ្នកវាយប្រហារអាចរំលងតក្កវិជ្ជាកម្មវិធីដើម្បីអាន ធ្វើបច្ចុប្បន្នភាព ឬលុបកំណត់ត្រាក្នុងមូលដ្ឋានទិន្នន័យ ប្រសិនបើ Row Level Security (RLS) មិនត្រូវបានអនុវត្តត្រឹមត្រូវ [S1] ។ នេះច្រើនតែបណ្តាលឱ្យមានការលាតត្រដាងនៃព័ត៌មានអត្តសញ្ញាណផ្ទាល់ខ្លួន (PII) ឬទិន្នន័យកម្មវិធីរសើបចំពោះអ្នកប្រើប្រាស់ដែលមានសិទ្ធិចូលប្រើសោសាធារណៈអនាមិក API ប៉ុណ្ណោះ។

ZXCVFIXVIBESEG ៥

មូលហេតុ

ZXCVFIXVIBESEG ៦ Supabase ប្រើប្រាស់ Postgres Row Level Security ដើម្បីគ្រប់គ្រងការចូលប្រើទិន្នន័យនៅកម្រិតមូលដ្ឋានទិន្នន័យ ដែលជាមូលដ្ឋានគ្រឹះសម្រាប់ការធានាទិន្នន័យ [S1] ។ នៅក្នុងបរិយាកាស Next.js អ្នកអភិវឌ្ឍន៍ត្រូវតែបង្កើតម៉ាស៊ីនភ្ញៀវ Supabase ដែលគ្រប់គ្រងខូគី និងវគ្គឱ្យបានត្រឹមត្រូវ ដើម្បីរក្សាសុវត្ថិភាពកំឡុងពេលបង្ហាញផ្នែកខាងម៉ាស៊ីនមេ [S2] ។ ភាពងាយរងគ្រោះជាធម្មតាកើតឡើងនៅពេលដែល៖ ZXCVFIXVIBESEG ៧

  • តារាងត្រូវបានបង្កើតដោយមិនបើក RLS ដែលធ្វើឱ្យពួកវាអាចចូលប្រើបានតាមរយៈកូនសោសាធារណៈ [S1] ។

ZXCVFIXVIBESEG ៨

  • ម៉ាស៊ីនភ្ញៀវ Supabase ត្រូវបានកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវនៅក្នុង Next.js ដោយបរាជ័យក្នុងការបញ្ជូនសញ្ញាសម្ងាត់នៃការផ្ទៀងផ្ទាត់អ្នកប្រើប្រាស់ឱ្យបានត្រឹមត្រូវទៅមូលដ្ឋានទិន្នន័យ [S2] ។
  • អ្នកអភិវឌ្ឍន៍ប្រើប្រាស់សោ service_role ដោយចៃដន្យនៅក្នុងកូដភាគីអតិថិជន ដែលរំលងគោលការណ៍ RLS ទាំងអស់ [S1] ។

ZXCVFIXVIBESEG ១០

ជួសជុលបេតុង

ZXCVFIXVIBESEG ១១

  • បើកដំណើរការ RLS: ធានាថា Row Level Security ត្រូវបានបើកសម្រាប់រាល់តារាងក្នុង Supabase របស់អ្នក [S1] ។

ZXCVFIXVIBESEG ១២

  • កំណត់គោលការណ៍៖ បង្កើតគោលការណ៍ Postgres ជាក់លាក់សម្រាប់ SELECT, INSERT, UPDATE, និង DELETE ដើម្បីរឹតបន្តឹងការចូលប្រើប្រាស់ដោយផ្អែកលើ UID4VIBETOKEN1ZXCV របស់អ្នកប្រើប្រាស់។

ZXCVFIXVIBESEG ១៣

  • ប្រើប្រាស់ SSR Clients៖ អនុវត្តកញ្ចប់ @supabase/ssr ដើម្បីបង្កើតអតិថិជននៅក្នុង Next.js ដែលគ្រប់គ្រងការផ្ទៀងផ្ទាត់ផ្នែកខាងម៉ាស៊ីនមេ និងការបន្តវេន [S2] យ៉ាងត្រឹមត្រូវ។

របៀបដែល FixVibe ធ្វើតេស្តសម្រាប់វា។

ZXCVFIXVIBESEG ១៥ FixVibe គ្របដណ្តប់វារួចហើយតាមរយៈការត្រួតពិនិត្យកម្មវិធីដែលបានដាក់ពង្រាយ និង repo ។ ម៉ូឌុល baas.supabase-rls អកម្មរកឃើញ Supabase URL និងគូសោអនាមិកពីកញ្ចប់ JavaScript ដែលមានប្រភពដើមដូចគ្នា សួរ PostgREST សម្រាប់ទិន្នន័យមេតាតារាងសាធារណៈ និងអនុវត្តការជ្រើសរើសអានតែមានកំណត់ ដើម្បីបញ្ជាក់ការប៉ះពាល់ទិន្នន័យអនាមិក ដោយមិនផ្លាស់ប្តូរទិន្នន័យអតិថិជន។ ការស្កេន Repo ក៏ដំណើរការ repo.supabase.missing-rls ដើម្បីដាក់ទង់ការធ្វើចំណាកស្រុក SQL ដែលបង្កើតតារាងសាធារណៈដោយគ្មាន ENABLE ROW LEVEL SECURITY ហើយការស្កែនសំងាត់រកមើលការបង្ហាញសោរតួនាទីសេវាកម្ម មុនពេលវាទៅដល់កម្មវិធីរុករក។