16

जब मैं अपने ऐप को प्रमाणीकृत करने के लिए फेसबुक के जेएस एसडीके का उपयोग करता हूं (FB.init विधि का उपयोग करके) मुझे बस अपनी ऐप आईडी चाहिए। इसे मेरे ऐप गुप्त और/या ऐप कुंजी की आवश्यकता नहीं है। हालांकि जब मैंने PHP एसडीके का उपयोग किया, तो मुझे अपने ऐप सेक्रेट की आवश्यकता थी (कम से कम उदाहरण मैं ऐप आईडी और ऐप गुप्त दोनों का उपयोग करना सीखता था)।फेसबुक जेएस एसडीके को प्रमाणित करने के लिए ऐप गुप्त की आवश्यकता नहीं है: यह कितना सुरक्षित है?

क्या यह सुरक्षित है और प्रमाणीकरण के लिए जेएस एसडीके का उपयोग करने की अनुशंसा की जाती है? जेएस एसडीके के साथ प्रमाणीकरण प्रवाह वास्तव में कैसे होता है?

धन्यवाद, विनीत

+3

एक जेएस फ़ाइल में अपने ऐप गुप्त का उपयोग करने से उपयोगकर्ताओं को इसे सादा पाठ में देखने की अनुमति मिल जाएगी, और यह आपके ऐप के लिए सुरक्षा उल्लंघन होगा। –

+0

एफबी एसडीके के साथ पिछले कुछ वर्षों में क्या कुछ बदल गया है? ** PHP एसडीके ** ** उपयोगकर्ता की डेटा के लिए अनुरोध करने के लिए ** ऐप-आईडी ** + ** एक्सेस-टोकन ** ** ** गुप्त-कुंजी ** की आवश्यकता है। ** जेएस एसडीके ** सिर्फ ** ऐप-आईडी ** + ** एक्सेस-टोकन ** की आवश्यकता है। कैसे एफबी जानता है, कि जेएस अनुरोध वास्तव में मेरे पृष्ठ से गुप्त कुंजी के बिना बनाया गया है? या क्यों ** PHP एसडीके ** जेएस एसडीके (तो गुप्त-कुंजी के बिना) के समान काम नहीं कर रहा है? – user775175

उत्तर

1

एक और मुद्दा FB उपयोगकर्ता वस्तु आप सर्वर साइड पर कुछ भी करने के लिए ग्राहक से प्राप्त उपयोग करने के लिए नहीं है से सावधान रहना करने के लिए। ऐसा इसलिए है क्योंकि किसी के लिए एक स्क्रिप्ट बनाने के लिए वास्तव में आसान होगा जो fb.api '/ me' को कॉल करने के बजाय आपके ऐप में किसी अन्य उपयोगकर्ता आईडी के साथ "नकली" JSON उपयोगकर्ता ऑब्जेक्ट भेज देगा। यदि आप किसी भी प्रकार की सर्वर साइड प्रोसेसिंग कर रहे हैं तो आपको वास्तव में कुछ प्रकार के सर्वर साइड प्रमाणीकरण करने की ज़रूरत है, साथ ही मुझे लगता है।

1

यह नहीं सुरक्षित, यह है आप क्यों "फील्ड्स सत्यापित करें" है और "नहीं हस्ताक्षर सत्यापित" Advanced Registration दस्तावेज़ में पैराग्राफ:

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

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

3

मैं देख रहा हूं कि प्रमाणीकरण कितना सुरक्षित है - मुझे लगता है कि जब आपने यह क्यू पूछा था तो चीजें बदल गई हैं, इसलिए शायद यह जानकारी सही होने पर सही नहीं थी।

जेएस एसडीके का नया संस्करण ओएथ 2.0 का उपयोग करता है। यह अच्छी तरह से प्रलेखित है - विवरण के लिए OAuth 2.0 site देखें।

एसडीके को ऐप रहस्य की आवश्यकता के मुद्दे के बारे में - मुझे इससे संबंधित कुछ भ्रम हो रहा है। ऐप सर्वर की ओर, पुस्तकालयों से संकेत मिलता है कि जेएस एसडीके ऐप गुप्त का उपयोग कर कुकीज़ पर हस्ताक्षर करता है (facebook-python sdk में फ़ंक्शन get_user_from_cookie देखें) - हालांकि, यह पूरी तरह से अस्पष्ट है कि जेएस एसडीके ऐप गुप्त कैसे जान सकता है। मैं अनुमान लगा रहा हूं कि यह एफबी से गतिशील रूप से प्राप्त कर सकता है जब यह सीधे प्रमाणीकरण प्रक्रिया में एफबी से बात करता है, लेकिन मुझे यकीन नहीं है।

(संपादित करें: मुझे लगता है कि जेएस एसडीके को एफबी से सीधे ऐप गुप्त के साथ कुकी पर हस्ताक्षर किया जाता है - जेएस एसडीके कभी भी ऐप गुप्त नहीं जानता)।

अपने क्यू का पूरी तरह से जवाब नहीं दे रहा है, लेकिन शायद यह कैसे काम करता है पर थोड़ा और प्रकाश डालना।

संबंधित मुद्दे

 संबंधित मुद्दे