FixVibe
Covered by FixVibehigh

अनुपलब्ध Supabase पंक्ति स्तरीय सुरक्षा (RLS) के माध्यम से अनधिकृत डेटा अभिगम

Supabase-समर्थित-अनुप्रयोगेषु, आँकडा-सुरक्षा पङ्क्ति-स्तर-सुरक्षा (RLS) इत्यस्य उपरि निर्भरं भवति । यदि RLS स्पष्टतया सक्षमं नीतैः सह विन्यस्तं च नास्ति, तर्हि सार्वजनिक-अनामकुंजीयुक्तः कोऽपि उपयोक्ता सम्पूर्णे आँकडाकोषे आँकडान् पठितुं, अद्यतनं कर्तुं, अथवा विलोपयितुं शक्नोति इदं विशेषतया Next.js वातावरणेषु महत्त्वपूर्णं भवति यत्र Supabase क्लायन्ट् प्रायः सार्वजनिक API कुञ्जी सह आरभ्यते

CWE-284

प्रभाव

पङ्क्तिस्तरसुरक्षा (RLS) कार्यान्वितुं विफलता अप्रमाणित आक्रमणकारिणः Supabase आँकडाकोषात् आँकडान् पृच्छितुं अनुमतिं ददाति यदा सार्वजनिकसारणीः anon सीमा [S1] इत्यस्य माध्यमेन उजागरिताः भवन्ति यतो हि Next.js अनुप्रयोगाः सामान्यतया क्लायन्ट्-पक्षीयसङ्केते Supabase anon कुञ्जीम् उजागरयन्ति, आक्रमणकारी अभिप्रेत-अनुप्रयोग-तर्कं त्यक्त्वा, संवेदनशील-उपयोक्तृ-तर्कं त्यक्त्वा, आँकडाधारं प्रति प्रत्यक्षं REST API-कॉलं कर्तुं एतस्य कुञ्ज्याः उपयोगं कर्तुं शक्नोति सूचना [S2].

मूलकारणम्

पूर्वनिर्धारितरूपेण, Supabase इत्यस्मिन् Postgres सारणीषु सार्वजनिकप्रवेशं निवारयितुं पङ्क्तिस्तरसुरक्षायाः स्पष्टसक्रियीकरणस्य आवश्यकता भवति [S1]. यदा कश्चन विकासकः सारणीं निर्माति परन्तु RLS सक्षमं कर्तुं विस्मरति अथवा प्रतिबन्धकनीतीः परिभाषितुं असफलः भवति तदा आँकडाधारः परियोजनायाः anon कुञ्जी [S1] धारकस्य कस्यचित् कृते आँकडानां उजागरं कर्तुं शक्नोति Next.js अनुप्रयोगेषु, सर्वर-पक्षीय-प्रतिपादनं तथा क्लायन्ट-पक्षीय-आनयम् अपि सावधानीपूर्वकं Supabase क्लायन्ट-सेटअपस्य आवश्यकता भवति अतः प्रमाणीकृतः उपयोक्तृसन्दर्भः आँकडाधारस्तरं [S2] यावत् प्राप्नोति

कंक्रीट फिक्स

  • 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].
  • सुरक्षितसर्वर-पक्षीयक्लायन्ट्: Next.js इत्यस्य उपयोगं कुर्वन्, सेवा-भूमिका-क्लायन्ट्-मात्रं सर्वर-रूपेण स्थापयन्तु तथापि उपयोक्तृभ्यः [S2]-इत्यस्मै आँकडान् प्रत्यागन्तुं पूर्वं स्वामित्व-छिद्रं प्रयोजयन्तु

FixVibe तस्य परीक्षणं कथं करोति

FixVibe पूर्वमेव baas.supabase-rls इत्यस्य माध्यमेन केवलं पठनीयं Supabase RLS जाँचं चालयति । स्कैनरः समान-मूल-जावास्क्रिप्ट-बण्डल्-तः Supabase परियोजना URL तथा सार्वजनिक anon कुञ्जीम् आविष्करोति, PostgREST इत्यनेन सार्वजनिक-सारणी-मेटाडाटा-इत्यस्य कृते पृच्छति, तथा च सीमित-मात्र-पठन-चयनस्य प्रयासं करोति यत् एतत् पुष्टयति यत् उपयोक्तृसत्रं विना आँकडा उजागरः भवति वा इति सेवा-भूमिका-प्रमाणपत्राणि न सम्मिलितं, अद्यतनं, विलोपनं, उपयोगं वा न करोति । रेपो स्कैन्स् repo.supabase.missing-rls इत्यस्य माध्यमेन अपि एतत् पूर्वं गृहीतुं शक्नुवन्ति, यत् SQL प्रवासनानि ध्वजयति ये ENABLE ROW LEVEL SECURITY विना सार्वजनिकसारणीः निर्मान्ति ।