2010-11-15 14 views
5

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

तो मेरे लिए विकल्प क्या हैं? मुझे लगता है कि एक निजी सर्वर है जिसमें गुप्त एपीआई कुंजी और एक वेब सेवा है जो सभी विधि कॉल को समाहित करती है। तो बजाय गुप्त कुंजी होने और की तरह कुछ करता है मोबाइल डिवाइस की: अपने गुप्त API कुंजी समझौता किया है और स्पैमिंग/दुरुपयोग प्रयोजनों के लिए प्रयोग किया जाता है
List<Friends> = service.GetFriends(secretKey);

, मैं अपने सभी उपयोगकर्ताओं के लिए उपयोग को बंद कर दिया जाना चाहिए, छोड़ने मेरा आवेदन समुद्र में मृत

तो मेरा विचार है कि मैं मोबाइल डिवाइस अद्वितीय डिवाइस आईडी का उपयोग करें और क्या कर सकते हैं:
List<Friends> = myService.GetFriends(deviceID);

बेशक

, एक दुर्भावनापूर्ण हैकर सिर्फ एक नकली DeviceID के साथ अपने वेब सेवा को कॉल सकता है, लेकिन कम से कम अब मैं डिवाइसआईडी के ब्लैकलिस्ट पर नियंत्रण रखें। यह कुछ संभावित बैंडविड्थ जारी करता है, लेकिन यह कम चिंता का विषय है।

एक वास्तविक पीकेआई शायद प्रश्न से बाहर है, क्योंकि लक्षित डिवाइस वर्तमान संस्करण में HTTP क्लाइंट प्रमाणपत्रों को संभाल नहीं करता है।

कोई अन्य अच्छा विचार?

उत्तर

1

आप अपनी एपीआई कुंजी को फेसबुक या ट्विटर पर प्रकाशित नहीं करना चाहते हैं, यहां तक ​​कि एक ग्राहक के भीतर भी परेशान है।

आपकी सहजताएं आपके द्वारा नियंत्रित की जाने वाली सेवा के माध्यम से प्रॉक्सी के लिए सही हैं। उस सेवा तक सीमित पहुंच आपके ऊपर है - अनधिकृत उपयोग कितना जोखिम है? डिवाइस आईडी डिवाइस/उपयोगकर्ता पहचान के लिए एक बहुत अच्छा सुराग है, लेकिन इसे फिक्र किया जा सकता है।

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

टी एल; डॉ

अपने मंच API कुंजियां को सुरक्षित रखें। अपनी जरूरतों को पूरा करने के लिए पर्याप्त अपने स्वयं के एपीआई सुरक्षित करें।