फायरबेस डेटा संशोधन को कैसे प्रतिबंधित करें?


92

फायरबेस डेटाबेस बैक-एंड प्रदान करता है ताकि डेवलपर्स क्लाइंट साइड कोड पर ध्यान केंद्रित कर सकें।

इसलिए अगर कोई मेरी फायरबेस यूरिया (उदाहरण के लिए https://firebaseinstance.firebaseio.com) लेता है, तो उस पर स्थानीय स्तर पर विकास करें

फिर, क्या वे मेरे फायरबेस उदाहरण से एक और ऐप बनाने में सक्षम होंगे, मेरे फायरबेस ऐप के सभी डेटा पढ़ने के लिए खुद को प्रमाणित और प्रमाणित करेंगे?

जवाबों:


103

@ फ्रेंक वैन पफलेन,

आपने फ़िशिंग हमले का उल्लेख किया। वास्तव में उसके लिए सुरक्षित करने का एक तरीका है।

यदि आप अपने googleAPI API प्रबंधक कंसोल में लॉग इन करते हैं, तो आपके पास एक विकल्प है जिसे HTTP संदर्भित करता है जिससे आपका ऐप अनुरोध स्वीकार करेगा।

  1. https://console.developers.google.com/apis पर जाएं
  2. अपने फायरबेस प्रोजेक्ट पर जाएं
  3. क्रेडेंशियल पर जाएं
  4. एपीआई कुंजियों के तहत, अपने फायरबेस प्रोजेक्ट से जुड़ी ब्राउजर कुंजी का चयन करें।
  5. "इन HTTP रेफ़रर्स (वेब ​​साइट्स) से अनुरोध स्वीकार करें" के तहत, बस अपने ऐप का URL जोड़ें।

यह केवल श्वेतसूची वाले डोमेन को आपके ऐप का उपयोग करने की अनुमति देता है।

यह भी यहां फायरबेस लॉन्च-चेकलिस्ट में वर्णित है: https://firebase.google.com/support/guides/launch-checklist

शायद फायरबेस डॉक्यूमेंटेशन इसे अधिक दृश्यमान बना सकता है या स्वतः ही डिफ़ॉल्ट रूप से डोमेन को लॉक कर सकता है और उपयोगकर्ताओं को एक्सेस की अनुमति देने की आवश्यकता होती है?


2
जब मैं Google एपीआई कंसोल पर जाता हूं, तो मुझे HTTP रेफ़रर को लॉक करने का विकल्प नहीं दिखता है। स्क्रीनशॉट मददगार होगा। thx
रतनक

क्या आपने उपरोक्त चरणों का पालन करने की कोशिश की है? यह आपको वहीं ले जाना चाहिए। सुरक्षा कारणों से, मैं एक पेंचकस नहीं लेने जा रहा हूं। ब्राउज़र कुंजी की तलाश करना याद रखें। शुभकामनाएँ।
प्रूफ्रोफ्रो

4
जब एक हाइब्रिड मोबाइल ऐप के साथ फायरबेस का उपयोग किया जाता है, तो आयनिक जैसे ढांचे का उपयोग करके, श्वेत-सूचीकरण कैसे काम कर सकता है? कोई सुझाव?
दिनाना

1
@prufrofro क्या आपके लिए ठीक काम कर रहा है? एंड्रॉइड ऐप के लिए एक ही काम करने के लिए सोच रहा था। मुझे आश्चर्य है कि क्यों Firebase सुरक्षा अनुभाग में शामिल नहीं है।
स्टेलियोसेफ

2
@ आनंद हां, लेकिन फायरबेस इस दस्तावेज में शामिल नहीं है। डिफ़ॉल्ट रूप से कुंजियाँ सार्वजनिक होती हैं और आपको उन्हें केवल एक विशिष्ट पैकेज नाम और SHA-1 ऐप प्रमाण पत्र में उपयोग के लिए manully प्रतिबंधित करना होगा। और मैं सोच रहा था कि फायरबेस इसका उल्लेख क्यों नहीं करता है। कोई कैच है या कुछ है?
स्टेलियोसेफ

38

यह तथ्य कि कोई व्यक्ति आपके URL को जानता है, सुरक्षा जोखिम नहीं है।

उदाहरण के लिए: मुझे आपको यह बताने में कोई समस्या नहीं है कि मेरा बैंक bankofamerica.com पर अपनी वेब साइट होस्ट करता है और यह वहां HTTP प्रोटोकॉल बोलता है। जब तक आप उस साइट को एक्सेस करने के लिए मेरे द्वारा उपयोग किए जाने वाले क्रेडेंशियल को भी नहीं जानते, तब तक URL जानना आपको अच्छा नहीं लगता।

आपके डेटा को सुरक्षित करने के लिए, आपके डेटाबेस को इसके साथ संरक्षित किया जाना चाहिए:

  • सत्यापन नियम जो सभी डेटा को एक संरचना का पालन करना सुनिश्चित करते हैं जो आप चाहते हैं
  • प्राधिकरण यह सुनिश्चित करने के लिए नियम बनाता है कि प्रत्येक बिट डेटा को केवल अधिकृत उपयोगकर्ताओं द्वारा पढ़ा और संशोधित किया जा सके

यह सभी सुरक्षा और नियमों पर फायरबेस प्रलेखन में शामिल है , जिसकी मैं अत्यधिक अनुशंसा करता हूं।

इन सुरक्षा नियमों के साथ, आपके डेटाबेस में डेटा को एक्सेस करने का एकमात्र तरीका यह है कि क्या वे आपके एप्लिकेशन की कार्यक्षमता की प्रतिलिपि बनाते हैं, तो उपयोगकर्ता आपके बजाय उनके ऐप में साइन इन करें और साइन इन करें / से पढ़ें / लिखें आपका डेटाबेस; अनिवार्य रूप से एक फ़िशिंग हमला। उस मामले में डेटाबेस में कोई सुरक्षा समस्या नहीं है, हालांकि इसके कुछ अधिकारियों को शामिल करने का समय है।


4
काफी जवाब नहीं, जिसकी मुझे तलाश है। मुझे आपसे एक अलग तरीके से पूछना चाहिए। मान लीजिए मैं तुम्हें मेरी firebase को यह यूआरएल दे दी है https://tinderclone.firebaseio.com/और https://tinderclone.firebaseio.com/profiles.json। वे असली फायरबेस डेटाबेस हैं। क्या आप इसे बंद कर सकते हैं, एक साइनअप फॉर्म और ईमेल के साथ लॉगिन फॉर्म बना सकते हैं। चूंकि मेरा ऐप किसी को भी ईमेल के साथ रजिस्टर करने की अनुमति देता है, आपके पंजीकृत होने के बाद, क्या आप सभी डेटा पढ़ पाएंगे? मैं आपसे बाद में एक और सवाल पूछूंगा। धन्यवाद
Rattanak

4
यह इस बात पर निर्भर करता है कि आप अपने डेटाबेस को कैसे सुरक्षित करते हैं। बस जोड़ने ".read": falseसे किसी को भी डेटा देखने से रोका जा सकेगा। आप शायद उससे थोड़ा अधिक अनुमति देना चाहते हैं, लेकिन यह सब आपके उपयोग-मामले पर निर्भर करता है। सिक्योरिटी एंड रूल्स पर डेटा सुरक्षित करना फायरबेस डॉक्यूमेंटेशन में शामिल है
फ्रैंक वैन पफ़ेलन

6

मोबाइल एप्लिकेशन के लिए प्रामाणिक श्वेत-सूची के बारे में, जहां डोमेन नाम लागू नहीं है, फायरबेस है

1) SHA1 fingerprintके लिए Android एप्लिकेशन और

2) App Store ID and Bundle ID and Team ID (if necessary)अपने iOS ऐप्स के लिए

जिसे आपको फायरबेस कंसोल में कॉन्फ़िगर करना होगा।

यह सुरक्षा के साथ, के बाद से मान्यता नहीं है बस अगर किसी को मान्य API कुंजी, प्रमाणीकरण डोमेन, आदि है, लेकिन यह भी, यह हमारे अधिकृत क्षुधा से और आने वाले है domain name/HTTP referrer in caseकी वेब

कहा कि, अगर इन एपीआई कुंजी और अन्य कनेक्शन परमों को दूसरों के संपर्क में रखा जाए तो हमें चिंता करने की जरूरत नहीं है।

अधिक जानकारी के लिए, https://firebase.google.com/support/guides/launch-checklist


मेरी अज्ञानता को क्षमा करें, मैं एन्क्रिप्शन के साथ बहुत अच्छा नहीं हूं लेकिन क्या आपके एपीके के माध्यम से Sha1 सुलभ नहीं है? क्या लोग सिर्फ शा 1 को भी कॉपी नहीं कर सकते? मैं नहीं देखता कि यह कैसे मदद करता है। मुझे अन्यथा साबित होने में बहुत खुशी होगी :)
cs लड़का

हाँ। आप निश्चित रूप से एक apk का sha1 प्राप्त कर सकते हैं। लेकिन यह कुछ ऐसा नहीं है जिसे आप अपने कॉल को मान्य करने के लिए फायरबेस के लिए एक पैराम के रूप में पास करते हैं। यह अग्निबेस द्वारा एपि-एसडीके स्तर (एंड्रॉइड रनटाइम से विश्वास) पर लिया गया है। इसलिए आप कनेक्शन को नकली करने के लिए इसे फायरबेस के लिए एक परम के रूप में नहीं भेज पाएंगे।
आनंद

केवल SHA1 फ़िंगरप्रिंट का उपयोग करने से आपके Android एप्लिकेशन को Firebase के साथ संचार करने में कुछ भी मदद नहीं मिलेगी। SHA1 को आसानी से प्राप्त और कॉपी किया जा सकता है, और SDK के बजाय Firebase API का उपयोग करके कनेक्शन को अभी भी फेक किया जा सकता है। आपको पहले अपने ऐप को अटेस्ट करना चाहिए, और कुंजी को छिपाने के लिए कुछ कोड ऑब्सफेकशन का उपयोग करना चाहिए।
FEBRYAN एएसए परदाना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.