2016-03-28 13 views
5

के साथ जावास्क्रिप्ट इंजेक्शन हमलों का जोखिम मैं बैकएंड के रूप में फायरबेस का उपयोग करने से जुड़े सुरक्षा विचारों को समझने/अनुमान लगाने की कोशिश कर रहा हूं।फ़ायरबेस

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

क्या यह संभव है कि जावास्क्रिप्ट को उस इनपुट फ़ील्ड में शामिल किया जा सके जो डेटाबेस में सहेजा गया है जिसे बाद में निष्पादित किया जा सकता है जब उस कोड को पुनर्प्राप्त किया जाता है और कहीं और प्रदर्शित किया जाता है?

या फ़ायरबेस किसी भी तरह से डेटा से बचने या sanitizing है?

+3

http://blog.diniscruz.com/2014/02/xss-considerations-when-developing-with.html –

+0

फ़ायरबेस एक अच्छा जेसन डेटाबेस है क्योंकि यह तेज़ था लेकिन मुझे पसंद नहीं है (डेटाबेस के लिए विकल्प) संवेदनशील डेटा/जानकारी के लिए आता है। आपको सुरक्षा कारणों (इनपुट पर विशेष रूप से जावास्क्रिप्ट सामान) के लिए किसी भी इनपुट को सख्ती से स्वच्छ करना होगा। –

उत्तर

3

बैकएंड के बावजूद इसे किसी वेबपृष्ठ में डालने पर आपको सभी उपयोगकर्ता इनपुट से ठीक से बचना होगा।

+0

समस्या फ़ायरबेस के साथ है कि आप यह सुनिश्चित नहीं कर सकते कि इनपुट को स्वच्छ किया गया है क्योंकि किसी भी स्वच्छता को क्लाइंट पक्ष किया जाता है और इसलिए आसानी से ओवरराइड किया जाता है। –

+0

व्यवस्थापक-एसडीके का उपयोग करके, आप एक फ़ायरबेस फ़ंक्शन बना सकते हैं जो डेटाबेस में डालने से पहले सर्वर-साइड को संचरित करता है। –

8

किसी भी डेटाबेस (या अन्य स्टोरेज सिस्टम) का उपयोग दुर्भावनापूर्ण कोड को संग्रहीत करने के लिए किया जा सकता है क्योंकि यह उनके फ़ंक्शन के निहित है: वे केवल डेटा स्टोर करते हैं।

फायरबेस एसडीके और समर्थित पुस्तकालय (जैसे एंगुलरफायर, एम्बरफायर और रीएक्टफायर) सुनिश्चित करते हैं कि वे कभी भी डेटाबेस से जानकारी को HTML पृष्ठों में अनदेखा नहीं करते हैं। हालांकि यह हमेशा संभव है कि हम (मैं फायरबेस के लिए काम करता हूं) वहां कुछ याद आया, मुझे याद नहीं है कि कभी भी इसकी सूचना दी जा रही है।

+3

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

+1

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

+0

हां इस जवाब के साथ समस्या यह है कि यह फ़ायरबेस को केवल डेटाबेस या स्टोरेज सिस्टम के रूप में वर्णित करता है, लेकिन जैसा कि मैं समझता हूं कि फायरबेस स्वयं बैकएंड के रूप में विपणन कर रहा है। मेरे लिए बैकएंड बस एक डेटाबेस से अधिक है और सुरक्षा से निपटने की जरूरत है। –

0

फ़ायरबेस डेटा की सत्यापन की पेशकश करता है, वहां आप अपने डेटाबेस में जावास्क्रिप्ट स्निपेट इंजेक्शन के लिए जांच सकते हैं।

https://firebase.google.com/docs/database/security/securing-data#validating_data

और आप हमेशा अपने उत्पादन को साफ़ करना चाहिए, इस Firebase लेकिन अंगूठे का एक अच्छा शासन से संबंधित नहीं है।