Firebase सुरक्षा नियमहरूले फायरस्टोर, रियलटाइम डाटाबेस, र क्लाउड भण्डारण [S1] मा डाटा सुरक्षित गर्न एक दानेदार, सर्भर-लागू संयन्त्र प्रदान गर्दछ। किनकि Firebase अनुप्रयोगहरूले प्राय: ग्राहक पक्षबाट यी क्लाउड सेवाहरूसँग अन्तर्क्रिया गर्दछ, यी नियमहरूले ब्याकइन्ड डाटा [S1] मा अनधिकृत पहुँच रोक्न एकमात्र अवरोध प्रतिनिधित्व गर्दछ।
अनुमति दिने नियमहरूको प्रभाव
गलत कन्फिगर गरिएका नियमहरूले महत्त्वपूर्ण डेटा एक्सपोजर [S2] निम्त्याउन सक्छ। यदि नियमहरू अत्याधिक अनुमति दिने सेट गरिएको छ — उदाहरणका लागि, पूर्वनिर्धारित 'परीक्षण मोड' सेटिङहरू प्रयोग गरेर जसले विश्वव्यापी पहुँचलाई अनुमति दिन्छ — परियोजना ID को ज्ञान भएको कुनै पनि प्रयोगकर्ताले सम्पूर्ण डाटाबेस सामग्री [S2] पढ्न, परिमार्जन गर्न वा मेटाउन सक्छ। यसले सबै क्लाइन्ट-साइड सुरक्षा उपायहरूलाई बाइपास गर्छ र यसले प्रयोगकर्ताको संवेदनशील जानकारी वा कुल सेवा अवरोध [S2] गुमाउन सक्छ।
मूल कारण: अपर्याप्त प्राधिकरण तर्क
यी कमजोरीहरूको मूल कारण सामान्यतया प्रयोगकर्ता पहिचान वा स्रोत विशेषताहरू [S3] मा आधारित पहुँच प्रतिबन्धित विशेष सर्तहरू लागू गर्न असफलता हो। विकासकर्ताहरूले request.auth वस्तु [S3] प्रमाणीकरण नगर्ने उत्पादन वातावरणमा प्रायः पूर्वनिर्धारित कन्फिगरेसनहरू सक्रिय छोड्छन्। request.auth को मूल्याङ्कन नगरीकन, प्रणालीले वैध प्रमाणीकृत प्रयोगकर्ता र एक बेनामी अनुरोधकर्ता [S3] बीच भेद गर्न सक्दैन।
प्राविधिक सुधार
Firebase वातावरण सुरक्षित गर्न खुल्ला पहुँचबाट प्रिन्सिपल-अफ-न्यूनतम-विशेषाधिकार मोडेलमा सर्नु आवश्यक छ।
- प्रमाणीकरण लागू गर्नुहोस्:
request.authवस्तु शून्य [S3] छैन भनेर जाँच गरेर सबै संवेदनशील पथहरूलाई मान्य प्रयोगकर्ता सत्र आवश्यक छ भनी सुनिश्चित गर्नुहोस्। - पहिचानमा आधारित पहुँच लागू गर्नुहोस्: प्रयोगकर्ताको UID (
request.auth.uid) लाई कागजात भित्रको फिल्ड वा कागजात ID आफैंमा प्रयोगकर्ताहरूले आफ्नै डाटा [S3] मात्र पहुँच गर्न सक्छन् भन्ने कुरा सुनिश्चित गर्नका लागि नियमहरू कन्फिगर गर्नुहोस्। - ग्रेन्युलर अनुमति स्कोपिङ: सङ्कलनका लागि विश्वव्यापी वाइल्डकार्डहरू नदिनुहोस्। यसको सट्टा, सम्भावित आक्रमण सतह [S2] कम गर्न प्रत्येक संग्रह र उप-संकलनको लागि विशिष्ट नियमहरू परिभाषित गर्नुहोस्।
- इम्युलेटर सुइट मार्फत प्रमाणीकरण: स्थानीय रूपमा सुरक्षा नियमहरू परीक्षण गर्न Firebase इमुलेटर सुइट प्रयोग गर्नुहोस्। यसले प्रत्यक्ष वातावरण [S2] मा तैनात गर्नु अघि विभिन्न प्रयोगकर्ता व्यक्तिहरू विरुद्ध पहुँच नियन्त्रण तर्कको प्रमाणीकरणको लागि अनुमति दिन्छ।
कसरी FixVibe यसको लागि परीक्षण गर्दछ
FixVibe ले अब यसलाई पढ्न-मात्र BaaS स्क्यानको रूपमा समावेश गर्दछ। baas.firebase-rules ले समान-मूल JavaScript बन्डलहरूबाट Firebase कन्फिगरेसन निकाल्छ, आधुनिक initializeApp(...) बन्डल आकारहरू सहित, त्यसपछि रियलटाइम डाटाबेस, फायरस्टोर, र ZXBEZVICVK2SXBEZVICVK2tor सँग जाँच गर्दछ। अप्रमाणित पढ्ने मात्र अनुरोधहरू। Firestore को लागि, यो पहिले रूट संग्रह सूची प्रयास गर्दछ; जब सूची अवरुद्ध हुन्छ, यसले users, accounts, customers, customers, orders, users जस्ता सामान्य संवेदनशील संग्रह नामहरूको पनि जाँच गर्दछ। messages, admin, र settings। यसले सफल अज्ञात पढाइ वा सूचीहरू मात्र रिपोर्ट गर्दछ र ग्राहक कागजात सामग्रीहरू लेख्ने, मेटाउने वा भण्डार गर्दैन।
