firebase - फायरबेस क्लाउड फ़ंक्शन: निरंतर अनुरोध से कैसे निपटें




google-cloud-functions (2)

फायरबेस (इस मामले में फायरबेस क्लाउड फ़ंक्शन) के साथ काम करते समय, हमें बैंडविड्थ के प्रत्येक बाइट के लिए भुगतान करना होगा।

तो, मुझे आश्चर्य है कि हम इस मामले से कैसे निपट सकते हैं कि कोई भी जो हमारे अंत बिंदु को खोजता है, फिर जानबूझकर निरंतर अनुरोध (स्क्रिप्ट या टूल द्वारा)?

मैंने इंटरनेट पर कुछ खोज की लेकिन कुछ भी मदद नहीं कर सकता है। इस के अलावा छोड़कर वास्तव में उपयोगी नहीं है।


इस समस्या का समाधान है जहां आप https एंडपॉइंट को सत्यापित कर सकते हैं।

केवल वे उपयोगकर्ता जो HTTP अनुरोध के प्राधिकरण शीर्षलेख में या __session कुकी में एक बेयरर टोकन के रूप में वैध फ़ायरबेस आईडी टोकन पास करते हैं, फ़ंक्शन का उपयोग करने के लिए अधिकृत हैं।

आईडी टोकन की जांच एक एक्सप्रेसजेस मिडलवेयर के साथ की जाती है जो एक्सप्रेस अनुरोध ऑब्जेक्ट में डीकोडेड आईडी टोकन भी पास करती है।

फायरबेस से this नमूना कोड की जांच this


चूंकि आपने किस प्रकार का अनुरोध निर्दिष्ट नहीं किया है, इसलिए मैं यह मानने जा रहा हूं कि आपका मतलब है कि फायरबेस क्लाउड फ़ंक्शंस पर http (s) -triggers।

अनुरोध से खपत बैंडविड्थ को 'कम करने' के लिए आप कई सीमाएं डाल सकते हैं। मैं कुछ ऐसे लिखूंगा जो मेरे दिमाग में आते हैं

1) अनुरोध के प्रकार सीमित करें

यदि आपको केवल इतना ही मिलता है और उदाहरण के लिए कहें तो आपको अपने क्लाउड फ़ंक्शन में आगे जाने से पहले, 403 के लिए वापस लौटने से शुरू कर सकते हैं।

if (req.method === 'PUT') { res.status(403).send('Forbidden!'); }

2) अगर आप कर सकते हैं प्रमाणीकरण

यहां Google के उदाहरण का पालन करें और केवल अधिकृत उपयोगकर्ताओं को आपके https अंतराल का उपयोग करने दें। आप इस सवाल के इस एसओएफ उत्तर की तरह टोकन को सत्यापित करके इसे प्राप्त कर सकते हैं।

3) मूल के लिए जाँच करें

आप अपने क्लाउड फ़ंक्शन में आगे जाने से पहले अनुरोध की उत्पत्ति की जांच करने का प्रयास कर सकते हैं। अगर मुझे सही याद है, क्लाउड फ़ंक्शंस आपको HTTP अनुरोध / प्रतिक्रिया ऑब्जेक्ट्स तक पूर्ण पहुंच प्रदान करता है ताकि आप उपयुक्त सीओआरएस हेडर सेट कर सकें और प्री-फ्लाइट विकल्प अनुरोधों का जवाब दे सकें।

प्रायोगिक विचार 1

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

प्रायोगिक विचार 2

आप क्लाउडफ्लेयर जैसे कुछ डालने के द्वारा अपनी समस्या के लिए DNS स्तर पर हमले-रोकथाम समाधान का उपयोग करने का प्रयास कर सकते हैं। अपने क्लाउड फ़ंक्शंस में यूआरएल मैप करने के लिए एक सीएनएन , और क्लाउडफ्लेयर पेज नियम का प्रयोग करें। यह प्रभावशाली ढंग से प्रभाव को अवशोषित कर सकता है। इस कदर :

*function1.mydomain.com/* -> https://us-central1-etc-etc-etc.cloudfunctions.net/function1/$2

अब अगर आप जाते हैं

http://function1.mydomain.com/?something=awesome

आप यूआरएल पैरा को अपने कार्यों में भी पास कर सकते हैं। गर्मी के दौरान इस माध्यम लेख में मैंने जो रणनीति पढ़ी है , जब मुझे कुछ इसी तरह की आवश्यकता थी।

आखिरकार

एसओएफ पर अधिक प्रश्न पूछने के प्रयास में, और सभी को उत्तर खोजने में मदद here's , here's एक और सवाल है जो मैंने पाया है कि प्रकृति में समान है। यहां लिंक करना ताकि अन्य इसे भी ढूंढ सकें।







google-cloud-functions