FixVibe
Covered by FixVibehigh

गुम Supabase पंक्ति स्तर सुरक्षा (ZXCVFIXVIBTOKEN1ZXCV) के माध्यम से अनधिकृत डेटा एक्सेस

Supabase-समर्थित अनुप्रयोगों में, डेटा सुरक्षा पंक्ति स्तर सुरक्षा (RLS) पर निर्भर करती है। यदि RLS स्पष्ट रूप से सक्षम नहीं है और नीतियों के साथ कॉन्फ़िगर नहीं किया गया है, तो सार्वजनिक अनाम कुंजी वाला कोई भी उपयोगकर्ता पूरे डेटाबेस में डेटा पढ़ सकता है, अपडेट कर सकता है या हटा सकता है। यह Next.js वातावरण में विशेष रूप से महत्वपूर्ण है जहां Supabase क्लाइंट को अक्सर सार्वजनिक API कुंजी के साथ प्रारंभ किया जाता है।

CWE-284

प्रभाव

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

मूल कारण

डिफ़ॉल्ट रूप से, Supabase में पोस्टग्रेज तालिकाओं को सार्वजनिक पहुंच [S1] को रोकने के लिए पंक्ति स्तर सुरक्षा के स्पष्ट सक्रियण की आवश्यकता होती है। जब कोई डेवलपर एक तालिका बनाता है लेकिन RLS को सक्षम करना भूल जाता है या प्रतिबंधात्मक नीतियों को परिभाषित करने में विफल रहता है, तो डेटाबेस प्रोजेक्ट की anon कुंजी [S1] रखने वाले किसी भी व्यक्ति को डेटा उजागर कर सकता है। Next.js अनुप्रयोगों में, सर्वर-साइड रेंडरिंग और क्लाइंट-साइड फ़ेचिंग के लिए भी सावधानीपूर्वक Supabase क्लाइंट सेटअप की आवश्यकता होती है ताकि प्रमाणित उपयोगकर्ता संदर्भ डेटाबेस परत [S2] तक पहुंच जाए।

ठोस सुधार

  • ZXCVFIXVIBTOKEN2ZXCV सक्षम करें: ऐप डेटा ZXCVFIXVIBTOKEN1ZXCV संग्रहीत करने वाली प्रत्येक सार्वजनिक तालिका के लिए ZXCVFIXVIBTOKEN0ZXCV निष्पादित करें।
  • नीतियां परिभाषित करें: विशिष्ट नीतियां बनाएं जो उपयोगकर्ता की प्रमाणीकरण स्थिति के आधार पर पहुंच को प्रतिबंधित करती हैं, जैसे ZXCVFIXVIBTOKEN0ZXCV [S1]।
  • सुरक्षित सर्वर-साइड क्लाइंट: Next.js का उपयोग करते समय, सेवा-भूमिका वाले क्लाइंट को केवल सर्वर पर रखें और उपयोगकर्ताओं को डेटा वापस करने से पहले स्वामित्व फ़िल्टर लागू करें [S2]।

FixVibe इसका परीक्षण कैसे करता है

ZXCVFIXVIBTOKEN3ZXCV पहले से ही baas.supabase-rls के माध्यम से केवल पढ़ने योग्य Supabase ZXCVFIXVIBTOKEN6ZXCV चेक चलाता है। स्कैनर समान-मूल जावास्क्रिप्ट बंडलों से Supabase प्रोजेक्ट यूआरएल और सार्वजनिक एनोन कुंजी की खोज करता है, सार्वजनिक तालिका मेटाडेटा के लिए PostgREST से पूछता है, और यह पुष्टि करने के लिए सीमित-पढ़ने के लिए चयन का प्रयास करता है कि डेटा उपयोगकर्ता सत्र के बिना उजागर हुआ है या नहीं। यह सेवा-भूमिका क्रेडेंशियल सम्मिलित नहीं करता, अद्यतन नहीं करता, हटाता या उपयोग नहीं करता है। रेपो स्कैन इसे repo.supabase.missing-rls के माध्यम से पहले भी पकड़ सकता है, जो SQL माइग्रेशन को चिह्नित करता है जो ENABLE ROW LEVEL SECURITY के बिना सार्वजनिक तालिकाएँ बनाता है।