ផលប៉ះពាល់
ZXCVFIXVIBESEG ៤ ការបរាជ័យក្នុងការអនុវត្ត Row Level Security (RLS) អនុញ្ញាតឱ្យអ្នកវាយប្រហារដែលមិនមានការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវអាចសួរទិន្នន័យពីមូលដ្ឋានទិន្នន័យ Supabase នៅពេលដែលតារាងសាធារណៈត្រូវបានលាតត្រដាងតាមរយៈព្រំដែន anon [S1] ។ ដោយសារតែកម្មវិធី Next.js ជាធម្មតាបង្ហាញសោ Supabase anon នៅក្នុងកូដភាគីអតិថិជន អ្នកវាយប្រហារអាចប្រើសោនេះដើម្បីធ្វើការហៅ REST API ដោយផ្ទាល់ទៅកាន់មូលដ្ឋានទិន្នន័យ ដោយឆ្លងកាត់ការចូលប្រើព័ត៌មានរសើបនៃកម្មវិធីដែលបានគ្រោងទុក។ [S2] ។
ZXCVFIXVIBESEG ៥
មូលហេតុ
ZXCVFIXVIBESEG ៦ តាមលំនាំដើម តារាង Postgres ក្នុង Supabase តម្រូវឱ្យមានការធ្វើឱ្យសកម្មជាក់លាក់នៃ Row Level Security ដើម្បីការពារការចូលប្រើជាសាធារណៈ [S1] ។ នៅពេលអ្នកអភិវឌ្ឍន៍បង្កើតតារាងមួយ ប៉ុន្តែភ្លេចបើក RLS ឬបរាជ័យក្នុងការកំណត់គោលការណ៍រឹតត្បិត មូលដ្ឋានទិន្នន័យអាចបង្ហាញទិន្នន័យដល់នរណាម្នាក់ដែលមានកូនសោ anon របស់គម្រោង [S1] ។ នៅក្នុងកម្មវិធី Next.js ការបង្ហាញផ្នែកខាងម៉ាស៊ីនមេ និងការទៅយកផ្នែកខាងម៉ាស៊ីនភ្ញៀវក៏តម្រូវឱ្យមានការដំឡើងម៉ាស៊ីនភ្ញៀវ Supabase ដោយប្រុងប្រយ័ត្ន ដូច្នេះបរិបទអ្នកប្រើប្រាស់ដែលបានផ្ទៀងផ្ទាត់បានឈានដល់ស្រទាប់មូលដ្ឋានទិន្នន័យ [S2] ។
ZXCVFIXVIBESEG ៧
ជួសជុលបេតុង
ZXCVFIXVIBESEG ៨
- បើកដំណើរការ RLS: ប្រតិបត្តិ
ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY;សម្រាប់រាល់តារាងសាធារណៈដែលរក្សាទុកទិន្នន័យកម្មវិធី [S1] ។ - កំណត់គោលការណ៍៖ បង្កើតគោលការណ៍ជាក់លាក់ដែលដាក់កម្រិតការចូលប្រើប្រាស់ដោយផ្អែកលើស្ថានភាពផ្ទៀងផ្ទាត់របស់អ្នកប្រើ ដូចជា
CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id);[S1]។
ZXCVFIXVIBESEG ១០
- Secure Server-Side Clients៖ នៅពេលប្រើ Next.js សូមរក្សាមុខងារ server-role clients តែប៉ុណ្ណោះ ហើយនៅតែអនុវត្តតម្រងកម្មសិទ្ធិ មុនពេលបញ្ជូនទិន្នន័យទៅអ្នកប្រើប្រាស់ [S2]។
ZXCVFIXVIBESEG ១១
របៀបដែល FixVibe ធ្វើតេស្តសម្រាប់វា។
ZXCVFIXVIBESEG ១២ FixVibe ដំណើរការ Supabase RLS ដែលបានតែអានរួចហើយ ពិនិត្យតាមរយៈ baas.supabase-rls ។ ម៉ាស៊ីនស្កេនរកឃើញ URL គម្រោង Supabase និងកូនសោសាធារណៈពីកញ្ចប់ JavaScript ដែលមានប្រភពដើមដូចគ្នា សួរ PostgREST សម្រាប់ទិន្នន័យមេតាតារាងសាធារណៈ និងការព្យាយាមជ្រើសរើសបានតែអានកំណត់ដើម្បីបញ្ជាក់ថាតើទិន្នន័យត្រូវបានលាតត្រដាងដោយគ្មានវគ្គអ្នកប្រើប្រាស់។ វាមិនបញ្ចូល ធ្វើបច្ចុប្បន្នភាព លុប ឬប្រើព័ត៌មានសម្គាល់តួនាទីសេវាកម្មទេ។ ការស្កេន Repo ក៏អាចចាប់វាបានមុននេះផងដែរ តាមរយៈ repo.supabase.missing-rls ដែលដាក់ទង់ការផ្លាស់ប្តូរ SQL ដែលបង្កើតតារាងសាធារណៈដោយគ្មាន ENABLE ROW LEVEL SECURITY ។
