FixVibe
Covered by FixVibehigh

Next.js + Supabase सुरक्षितं करणं: पंक्तिस्तरीयसुरक्षा (RLS) बाईपासं निवारयति

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

CWE-284

प्रभाव

आक्रमणकारिणः आँकडाकोषे अभिलेखान् पठितुं, अद्यतनं कर्तुं, अथवा विलोपयितुं अनुप्रयोगतर्कं बाईपासं कर्तुं शक्नुवन्ति यदि पङ्क्तिस्तरसुरक्षा (RLS) सम्यक् प्रवर्तितं न भवति [S1]. अस्य परिणामः प्रायः व्यक्तिगतपरिचयसूचनायाः (PII) अथवा संवेदनशीलस्य अनुप्रयोगदत्तांशस्य उजागरः भवति येषां उपयोक्तृणां कृते केवलं सार्वजनिकानामिका API कुञ्जीपर्यन्तं प्रवेशः भवति

मूलकारणम्

Supabase आँकडाधारस्तरस्य आँकडापरिवेषणस्य प्रबन्धनार्थं Postgres पंक्तिस्तरसुरक्षायाः उपयोगं करोति, यत् आँकडानां सुरक्षिततायै मौलिकम् अस्ति [S1] Next.js वातावरणे, विकासकान् एकं Supabase क्लायन्ट् निर्मातव्यं यत् सर्वर-पक्षीय-प्रतिपादनस्य [S2] इत्यस्य समये सुरक्षां निर्वाहयितुम् कुकीजं सत्रं च सम्यक् नियन्त्रयति सामान्यतया दुर्बलताः तदा उत्पद्यन्ते यदा : १.

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

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

  • RLS सक्षमं कुर्वन्तु: सुनिश्चितं कुर्वन्तु यत् भवतः Supabase आँकडाकोष [S1] इत्यस्मिन् प्रत्येकस्य सारणीयाः कृते पङ्क्तिस्तरसुरक्षा सक्षमा अस्ति।
  • नीतिः परिभाषयतु: उपयोक्तुः UID इत्यस्य आधारेण अभिगमनं प्रतिबन्धयितुं SELECT, INSERT, UPDATE, तथा DELETE संचालनस्य कृते विशिष्टानि Postgres नीतयः रचयन्तु [S1].
  • SSR क्लायन्ट् इत्यस्य उपयोगं कुर्वन्तु: @supabase/ssr संकुलं कार्यान्वितं कुर्वन्तु येन Next.js इत्यस्मिन् क्लायन्ट् निर्मातुं शक्यते ये सर्वर-पक्ष-प्रमाणीकरणं तथा सत्र-स्थायित्वं च सम्यक् प्रबन्धयन्ति [S2].

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

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