खोज…


परिचय

Firebase Realtime Database के साथ, आपका डेटाबेस नियम आपके सर्वर साइड सुरक्षा है। आपको बहुत सावधान और जागरूक रहने की जरूरत है कि आपके डेटाबेस तक किसकी पहुंच है। यह महत्वपूर्ण है कि कोई भी आपके डेटा तक पहुंच प्राप्त न करे।

डिफ़ॉल्ट रूप से, फायरबेस रियलटाइम डेटाबेस नियम किसी भी प्रमाणित उपयोगकर्ता को सभी डेटा पढ़ने और लिखने की अनुमति देते हैं, यह संभवतः वह नहीं है जो आप अपने ऐप को करना चाहते हैं।

विभिन्न परिदृश्यों के लिए नीचे दिए गए उदाहरणों पर एक नज़र डालें।

टिप्पणियों

Firebase Realtime Database आसानी से परिभाषित करने के लिए जावास्क्रिप्ट-जैसे सिंटैक्स के साथ एक लचीली, अभिव्यक्ति-आधारित नियम भाषा प्रदान करता है कि आपके डेटा को कैसे संरचित किया जाना चाहिए, इसे कैसे अनुक्रमित किया जाना चाहिए, और जब आपके डेटा को पढ़ा और लिखा जा सकता है। हमारी प्रमाणीकरण सेवाओं के साथ संयुक्त, आप परिभाषित कर सकते हैं कि किसके पास डेटा है और आपके उपयोगकर्ताओं की व्यक्तिगत जानकारी को अनधिकृत पहुंच से कैसे बचा सकता है।

डिफ़ॉल्ट रूप से, आपके डेटाबेस नियमों को फायरबेस प्रमाणीकरण की आवश्यकता होती है और केवल प्रमाणित उपयोगकर्ताओं को पूर्ण पढ़ने और लिखने की अनुमति देते हैं। डिफ़ॉल्ट नियम यह सुनिश्चित करते हैं कि आपके डेटाबेस को मुझे कॉन्फ़िगर करने का मौका मिलने से पहले किसी के द्वारा भी सुलभ नहीं है

आधिकारिक दस्तावेज

https://firebase.google.com/docs/database/security/quickstart

नियमों को कैसे कॉन्फ़िगर करें

  1. फायरबेस कंसोल में जाएं।
  2. अपना प्रोजेक्ट चुनें
  3. बाईं ओर डेटाबेस अनुभाग पर क्लिक करें और फिर नियम टैब चुनें।

यदि आप उत्पादन में लगाने से पहले अपने सुरक्षा नियमों का परीक्षण करना चाहते हैं, तो आप नियमों के संपादक के ऊपरी दाहिने हिस्से में सिम्यूलेट बटन का उपयोग करके कंसोल में परिचालन का अनुकरण कर सकते हैं।

डिफ़ॉल्ट नियम

डिफ़ॉल्ट नियमों को प्रमाणीकरण की आवश्यकता होती है।
वे आपके ऐप के प्रमाणित उपयोगकर्ताओं तक पूर्ण पढ़ने और लिखने की अनुमति देते हैं। यदि आप अपने ऐप के सभी उपयोगकर्ताओं के लिए डेटा खोलना चाहते हैं, लेकिन वे इसे दुनिया के लिए नहीं खोलना चाहते हैं तो वे उपयोगी हैं।

// These rules require authentication
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

अपनी फ़ाइलों को सार्वजनिक रूप से पठनीय और लिखने योग्य कैसे सेट करें

बस परिभाषित करें:

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

यह विकास के दौरान उपयोगी हो सकता है लेकिन ध्यान दें क्योंकि इस स्तर की पहुंच का मतलब है कि कोई भी आपके डेटाबेस को पढ़ या लिख सकता है

पढ़ने और लिखने की पहुंच को अक्षम कैसे करें

आप उपयोगकर्ताओं द्वारा अपने डेटाबेस तक पहुंच को पढ़ने और लिखने को अक्षम करने के लिए एक निजी नियमों को परिभाषित कर सकते हैं। इन नियमों के साथ, आप केवल डेटाबेस का उपयोग कर सकते हैं जब आपके पास प्रशासनिक विशेषाधिकार होते हैं (जो आप फायरबेस कंसोल के माध्यम से या किसी सर्वर से साइन इन करके डेटाबेस तक पहुंच प्राप्त कर सकते हैं)

// These rules don't allow anyone read or write access to your database
{
  "rules": {
    ".read": false,
    ".write": false
  }
}

केवल प्रमाणित उपयोगकर्ताओं तक पहुंच कैसे प्रदान करें

यहां एक नियम का एक उदाहरण है जो प्रत्येक प्रमाणित उपयोगकर्ता को /users/$user_id पर एक व्यक्तिगत नोड देता है जहां $ user_id प्रमाणीकरण के माध्यम से प्राप्त उपयोगकर्ता की आईडी है।

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
  "rules": {
    "users": {
      "$user_id": {
        ".read": "$user_id === auth.uid",
        ".write": "$user_id === auth.uid"
      }
    }
  }
}

समूह से विशिष्ट आइटम पढ़ने की अनुमति कैसे दें, लेकिन समूह के सदस्यों को सूचीबद्ध करने से रोकें

कुंजी के रूप में आइटम आईडी के साथ सरल मूल्य नोड बनाकर आइटम के समूह बनाना आम बात है। उदाहरण के लिए, हम पर एक नोड बनाने के द्वारा समूह "व्यवस्थापक" करने के लिए एक उपयोगकर्ता जोड़ सकते हैं /administrators/$user_id एक मूल्य के साथ true । हम नहीं चाहते कि किसी को पता चले कि प्रशासक कौन हैं, सुरक्षा कारणों से, लेकिन हम अभी भी जांचना चाहते हैं कि कोई प्रमाणिक उपयोगकर्ता प्रशासक है या नहीं । इन नियमों के साथ हम ऐसा कर सकते हैं:

{
  "rules": {
    "administrators": {
      // No one can list administrators
      ".read": "false",
      "$uid": {
        // Authenticated user can check if they are in this group
        ".read": "$uid === auth.uid",
        // Administrators can write
        ".write": "data.parent().child(auth.uid).val() === true",
        // Allow only add or delete, no duplicates
        ".validate": "!data.exists() || !newData.exists() || newData.isBoolean()",
      }
    }
  }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow