Firebase Security Rules, Cloud Firestore, Realtime Database, और Cloud Storage में मौजूद आपके डेटा को पूरी तरह से कस्टमाइज़ की जा सकने वाली बेहतर सुरक्षा देता है. इस गाइड में दिए गए निर्देशों का पालन करके, Rules का इस्तेमाल करना आसान है. इससे, अपने डेटा को सुरक्षित रखने के साथ-साथ, अपने ऐप्लिकेशन को नुकसान पहुंचाने वाले उपयोगकर्ताओं से बचाया जा सकता है.
Firebase Security Rules भाषा को समझना
नियम लिखने से पहले, कुछ समय निकालकर उन Firebase प्रॉडक्ट के लिए Firebase Security Rules भाषा की समीक्षा करना ज़रूरी है जिनका इस्तेमाल किया जा रहा है.
Cloud Storage, कॉमन एक्सप्रेशन लैंग्वेज (सीईएल) के सुपरसेट का इस्तेमाल करता है. यह match
और allow
स्टेटमेंट पर निर्भर करता है, जो किसी तय पाथ पर ऐक्सेस के लिए शर्त सेट करते हैं.
Firebase Security Rules भाषा का मुख्य सिंटैक्स सीखकर शुरुआत करें.
Authentication सेट अप करें
अगर आपने अब तक ऐसा नहीं किया है, तो अपने ऐप्लिकेशन में Firebase Authentication जोड़ें. Firebase Authentication, पुष्टि करने के कई सामान्य तरीकों के साथ काम करता है. साथ ही, पुष्टि करने की बेहतर सुविधाएं देने के लिए, Firebase Security Rules के साथ इंटिग्रेट होता है.
अपने ऐप्लिकेशन के लिए, पुष्टि करने से जुड़ी अतिरिक्त और पसंद के मुताबिक जानकारी सेट अप की जा सकती है.
Firebase Security Rules और Firebase Authentication के बारे में ज़्यादा जानें.
अपने डेटा और नियमों के स्ट्रक्चर तय करना
डेटा को स्ट्रक्चर करने के तरीके से, नियमों को स्ट्रक्चर करने और लागू करने के तरीके पर असर पड़ सकता है. डेटा स्ट्रक्चर तय करते समय, इस बात का ध्यान रखें कि उनका आपके Rules स्ट्रक्चर पर क्या असर पड़ सकता है.
उदाहरण के लिए, हो सकता है कि आप Cloud Storage में ऐसा फ़ील्ड शामिल करना चाहें जो हर उपयोगकर्ता की भूमिका के बारे में बताता हो. इसके बाद, आपके नियम उस फ़ील्ड को पढ़ सकते हैं और भूमिका के हिसाब से ऐक्सेस देने के लिए उसका इस्तेमाल कर सकते हैं. आपके पास Cloud Firestore डेटाबेस बनाने का विकल्प भी है. इसके बाद, Cloud Firestore दस्तावेज़ों में ऐक्सेस की शर्तें सेव करें और Cloud Storage Security Rules से उन दस्तावेज़ों को ऐक्सेस करें.
डेटा और नियमों के आर्किटेक्चर तय करते समय, इस बात का ध्यान रखें कि आपके प्रॉडक्ट के हिसाब से, नियम कैसे कैस्केड करते हैं या नहीं करते. Realtime Database के साथ, नियम ऊपर से नीचे की ओर काम करते हैं. इसमें, कम प्राथमिकता वाले नियम, ज़्यादा प्राथमिकता वाले नियमों को बदल देते हैं. अगर कोई नियम किसी खास पाथ पर पढ़ने या लिखने की अनुमतियां देता है, तो वह उस पाथ के सभी चाइल्ड नोड का ऐक्सेस भी देता है. इसके उलट, Cloud Firestore और Cloud Storage के साथ, नियम सिर्फ़ डेटा हैरारकी के तय किए गए लेवल पर लागू होते हैं. साथ ही, अलग-अलग लेवल के ऐक्सेस को कंट्रोल करने के लिए, साफ़ तौर पर नियम लिखे जाते हैं.
अपने नियमों को ऐक्सेस करना
अपना मौजूदा Rules देखने के लिए, Firebase सीएलआई या Firebase कंसोल का इस्तेमाल करें. पक्का करें कि आपने नियमों में बदलाव करने के लिए, एक ही तरीके का इस्तेमाल किया हो. ऐसा करने से, अपडेट को गलती से ओवरराइट होने से बचाया जा सकता है. अगर आपको यह पक्का नहीं है कि स्थानीय तौर पर तय किए गए नियमों में सबसे नए अपडेट शामिल हैं या नहीं, तो Firebase कंसोल हमेशा आपके Firebase Security Rules का सबसे हाल ही में डिप्लॉय किया गया वर्शन दिखाता है.
Firebase कंसोल से अपने नियम ऐक्सेस करने के लिए, अपना प्रोजेक्ट चुनें. इसके बाद, बाईं ओर मौजूद नेविगेशन पैनल में, स्टोरेज पर क्लिक करें. सही डेटाबेस या स्टोरेज बकेट में जाने के बाद, Rules पर क्लिक करें.
Firebase सीएलआई से अपने नियमों को ऐक्सेस करने के लिए, firebase.json फ़ाइल में बताई गई नियम फ़ाइल पर जाएं.
बुनियादी नियम लिखना
ऐप्लिकेशन डेवलप करने और Rules को समझने के दौरान, Rules को लागू करने की कोशिश करें. इससे, इस्तेमाल के कुछ बुनियादी उदाहरणों को हल करने में मदद मिलेगी. इनमें ये शामिल हैं:
- सिर्फ़ कॉन्टेंट के मालिक के लिए: उपयोगकर्ता के लिए कॉन्टेंट के ऐक्सेस पर पाबंदी लगाएं.
- मिश्रित ऐक्सेस: उपयोगकर्ता के लिए, लिखने का ऐक्सेस सीमित करें, लेकिन सार्वजनिक तौर पर पढ़ने का ऐक्सेस दें.
- एट्रिब्यूट के आधार पर ऐक्सेस: किसी ग्रुप या उपयोगकर्ता टाइप के लिए ऐक्सेस को सीमित करें.
अपने नियमों की जांच करना
अगर Firebase कंसोल में Firebase Security Rules सेट अप किया जा रहा है, तो Firebase Rules Playground का इस्तेमाल करके, व्यवहार की पुष्टि तुरंत की जा सकती है. हालांकि, हमारा सुझाव है कि प्रोडक्शन में बदलावों को डिप्लॉय करने से पहले, Local Emulator Suite की मदद से ज़्यादा अच्छी तरह से जांच करें.
नियम डिप्लॉय करना
अपने नियमों को प्रोडक्शन में डिप्लॉय करने के लिए, Firebase कंसोल या Firebase सीएलआई का इस्तेमाल करें. Firebase Security Rules को मैनेज और डिप्लॉय करें में दिया गया तरीका अपनाएं.