Cloud Storage के लिए Firebase के सुरक्षा नियमों को समझना

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

Firebase Authentication की तरह ही, Cloud Storage के लिए Firebase Security Rules का इस्तेमाल करके, उपयोगकर्ताओं को अनुमति देना और अनुरोधों की पुष्टि करना आसान हो जाता है. Cloud Storage Security Rules, पाथ के आधार पर अनुमतियां तय करने की सुविधा देकर, आपके लिए मुश्किलों को मैनेज करता है. कोड की कुछ लाइनों में, अनुमति से जुड़े ऐसे नियम लिखे जा सकते हैं जिनसे किसी खास उपयोगकर्ता के लिए Cloud Storage अनुरोधों पर पाबंदी लगाई जा सकती है या अपलोड किए जाने वाले डेटा के साइज़ को सीमित किया जा सकता है.

Firebase Realtime Database में भी एक ऐसी ही सुविधा है, जिसे Firebase Realtime Database Security Rules कहा जाता है

पुष्टि करना

ऐप्लिकेशन बनाने के लिए यह जानना ज़रूरी है कि आपके उपयोगकर्ता कौन हैं. Firebase Authentication, पुष्टि करने के लिए क्लाइंट साइड का एक आसान, सुरक्षित, और इस्तेमाल करने में आसान समाधान उपलब्ध कराता है. Cloud Storage के लिए Firebase Security Rules, उपयोगकर्ता के हिसाब से सुरक्षा के लिए Firebase Authentication से जुड़ा है. जब किसी उपयोगकर्ता की पुष्टि Firebase Authentication से की जाती है, तो Cloud Storage Security Rules में मौजूद request.auth वैरिएबल एक ऑब्जेक्ट बन जाता है. इसमें उपयोगकर्ता का यूनीक आईडी (request.auth.uid) और टोकन (request.auth.token) में उपयोगकर्ता की अन्य सभी जानकारी शामिल होती है. जब उपयोगकर्ता की पुष्टि नहीं की जाती है, तो request.auth वैरिएबल null होता है. इससे, हर उपयोगकर्ता के हिसाब से डेटा ऐक्सेस को सुरक्षित तरीके से कंट्रोल किया जा सकता है. ज़्यादा जानने के लिए, पुष्टि सेक्शन पर जाएं.

अनुमति देना

उपयोगकर्ता की पहचान करना, सुरक्षा का सिर्फ़ एक हिस्सा है. यह पता चलने के बाद कि वे कौन हैं, आपको Cloud Storage में मौजूद फ़ाइलों का ऐक्सेस कंट्रोल करने का तरीका चाहिए.

Cloud Storage की मदद से, हर फ़ाइल और पाथ के लिए अनुमति के नियम तय किए जा सकते हैं. ये नियम हमारे सर्वर पर मौजूद होते हैं और आपके ऐप्लिकेशन में फ़ाइलों के ऐक्सेस का फ़ैसला करते हैं. उदाहरण के लिए, डिफ़ॉल्ट Cloud Storage Security Rules के लिए, सभी फ़ाइलों पर read या write से जुड़ा कोई भी कार्रवाई करने के लिए, Firebase Authentication की ज़रूरत होती है:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

इन नियमों में बदलाव करने के लिए, Firebase कंसोल में कोई Firebase ऐप्लिकेशन चुनें और स्टोरेज सेक्शन का Rules टैब देखें.

डेटा सत्यापन

Cloud Storage के लिए Firebase Security Rules का इस्तेमाल, डेटा की पुष्टि करने के लिए भी किया जा सकता है. इसमें फ़ाइल के नाम और पाथ के साथ-साथ, contentType और size जैसी फ़ाइल मेटाडेटा प्रॉपर्टी की पुष्टि करना भी शामिल है.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

अगले चरण