Firebase सुरक्षा नियम फायरस्टोअर, रिअलटाइम डेटाबेस आणि क्लाउड स्टोरेज [S1] मधील डेटाचे संरक्षण करण्यासाठी ग्रेन्युलर, सर्व्हर-लागू यंत्रणा प्रदान करतात. Firebase ऍप्लिकेशन्स अनेकदा या क्लाउड सेवांशी थेट क्लायंटच्या बाजूने संवाद साधतात, हे नियम [S1] बॅकएंड डेटावर अनधिकृत प्रवेश प्रतिबंधित करणारा एकमेव अडथळा दर्शवतात.
अनुज्ञेय नियमांचा प्रभाव
चुकीचे कॉन्फिगर केलेले नियम लक्षणीय डेटा एक्सपोजर [S2] होऊ शकतात. जर नियम अत्याधिक अनुज्ञेय म्हणून सेट केले असतील-उदाहरणार्थ, डीफॉल्ट 'चाचणी मोड' सेटिंग्ज वापरून जे जागतिक प्रवेशास अनुमती देतात-प्रोजेक्ट आयडीचे ज्ञान असलेला कोणताही वापरकर्ता संपूर्ण डेटाबेस सामग्री [S2] वाचू शकतो, सुधारू शकतो किंवा हटवू शकतो. हे सर्व क्लायंट-साइड सुरक्षा उपायांना बायपास करते आणि परिणामी वापरकर्त्याची संवेदनशील माहिती गमावू शकते किंवा एकूण सेवा व्यत्यय [S2] होऊ शकते.
मूळ कारण: अपुरा अधिकृतता तर्क
या असुरक्षिततेचे मूळ कारण सामान्यत: वापरकर्ता ओळख किंवा संसाधन गुणधर्म [S3] वर आधारित प्रवेश प्रतिबंधित करणाऱ्या विशिष्ट परिस्थितीची अंमलबजावणी करण्यात अपयश आहे. डेव्हलपर वारंवार उत्पादन वातावरणात डीफॉल्ट कॉन्फिगरेशन सक्रिय ठेवतात जे request.auth ऑब्जेक्ट [S3] प्रमाणित करत नाहीत. request.auth चे मूल्यमापन केल्याशिवाय, सिस्टीम वैध प्रमाणीकृत वापरकर्ता आणि निनावी विनंतीकर्ता [S3] यांच्यात फरक करू शकत नाही.
तांत्रिक उपाय
Firebase वातावरण सुरक्षित करण्यासाठी खुल्या प्रवेशापासून किमान-विशेषाधिकाराच्या प्रिन्सिपल मॉडेलकडे जाणे आवश्यक आहे.
- प्रमाणीकरणाची अंमलबजावणी करा:
request.authऑब्जेक्ट शून्य [S3] नाही का ते तपासून सर्व संवेदनशील पथांना वैध वापरकर्ता सत्र आवश्यक असल्याची खात्री करा. - ओळख-आधारित प्रवेश लागू करा: वापरकर्त्याच्या UID (
request.auth.uid) ची तुलना दस्तऐवजातील फील्डशी किंवा दस्तऐवज आयडीशी तुलना करणारे नियम कॉन्फिगर करा जेणेकरून वापरकर्ते केवळ त्यांच्या स्वतःच्या डेटामध्ये प्रवेश करू शकतील याची खात्री करा. - ग्रॅन्युलर परमिशन स्कोपिंग: संकलनासाठी जागतिक वाइल्डकार्ड टाळा. त्याऐवजी, संभाव्य आक्रमण पृष्ठभाग [S2] कमी करण्यासाठी प्रत्येक संकलन आणि उप-संग्रहासाठी विशिष्ट नियम परिभाषित करा.
- इम्युलेटर सूटद्वारे प्रमाणीकरण: स्थानिक पातळीवर सुरक्षा नियमांची चाचणी घेण्यासाठी Firebase एमुलेटर सूट वापरा. हे थेट वातावरण [S2] वर उपयोजित करण्यापूर्वी विविध वापरकर्ता व्यक्तींविरूद्ध प्रवेश नियंत्रण तर्काची पडताळणी करण्यास अनुमती देते.
त्यासाठी FixVibe चाचण्या कशा करतात
FixVibe मध्ये आता हे केवळ-वाचनीय BaaS स्कॅन म्हणून समाविष्ट आहे. baas.firebase-rules समान-मूळ JavaScript बंडलमधून Firebase कॉन्फिगरेशन काढते, आधुनिक initializeApp(...) बंडल आकारांसह, नंतर रिअलटाइम डेटाबेस, फायरस्टोअर आणि ZXBEZVIXVIKVEN11 ZXBEXVIKVEN1 सह ZXCVFIXVIBTOKEN बंडल तपासते. केवळ-वाचनीय विनंत्या. फायरस्टोअरसाठी, ते प्रथम रूट संग्रह सूची करण्याचा प्रयत्न करते; जेव्हा सूची अवरोधित केली जाते, तेव्हा ते users, accounts, customers, orders, orders, users सारख्या सामान्य संवेदनशील संग्रह नावांची देखील चौकशी करते. messages, admin, आणि settings. हे केवळ यशस्वी निनावी वाचन किंवा सूचीचा अहवाल देते आणि ग्राहक दस्तऐवज सामग्री लिहित, हटवत किंवा संग्रहित करत नाही.
