2012-09-17 9 views
9

मुझे एंड्रॉइड एप्लिकेशन में कुछ संवेदनशील जानकारी स्टोर करने की आवश्यकता है। अगर मैं इसे संसाधन फ़ाइल में डालता हूं, तो ऐसा लगता है कि PackageManager.getResourcesForApplication() का उपयोग कर उस फ़ाइल को ब्राउज़ और पढ़ने में सक्षम होने के लिए यह एक और ऐप के लिए छोटा है।एंड्रॉइड एप्लिकेशन में एपीआई कुंजी जैसी संवेदनशील वैश्विक जानकारी कहां स्टोर करें?

इस तरह की जानकारी रखने के लिए सही जगह कहां है कि हम नहीं चाहते कि लोग आसानी से स्नूप कर सकें?

क्या यह एक संकलित जावा फ़ाइल में होना चाहिए? या क्लासफाइल भी आसानी से पठनीय हैं? साथ ही, अगर वे जावा फाइलों में हैं, तो क्या उनको उन XML फ़ाइलों से संदर्भित करना संभव है जिन्हें उनकी आवश्यकता है (उदाहरण के लिए। Google मानचित्र एपीआई कुंजी के लिए)?

+3

जो कुछ भी आप अपने एपीके में वितरित करते हैं वह पठनीय है। बस इसे संसाधनों/जावा फाइलों में तब तक रखें जब तक कि यह एपीआई कुंजी जैसी बेकार सामग्री है। यदि आपका क्रेडिट कार्ड नंबर यह बिल्कुल नहीं है। मैप्स एपीआई कुंजी केवल एक्सएमएल आईआईआरसी – zapl

+2

में काम करता है ProGuard साइट पर वे [DexGuard] (http://www.saikoa.com/dexguard) का उल्लेख करते हैं जो स्थिर स्थिर स्ट्रिंग्स (एपीआई कुंजी) के लिए बेहतर obfuscation की अनुमति देता है। अगर कुछ पैसे में फेंकना कोई समस्या नहीं है तो उन्हें जांच करनी चाहिए कि उन्हें क्या परेशानी हो सकती है। – harism

उत्तर

9

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

असली रहस्यों को संभालना किसी प्रकार के इनपुट, विशेष रूप से पासवर्ड पर आधारित होना चाहिए।

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

-3

यदि आप अन्य एप्लिकेशन से अपने डेटा तक पहुंच से इनकार करना चाहते हैं, तो आप साझा किए गए संदर्भों का उपयोग कर सकते हैं। बस Contex.getSharedPreferences (/ prefs फ़ाइल नाम /, Context.MODE_PRIVATE) का उपयोग करें; प्रलेखन के अनुसार MODE_PRIVATE का अर्थ है कि बनाई गई फ़ाइल को केवल कॉलिंग एप्लिकेशन (या एक ही उपयोगकर्ता आईडी साझा करने वाले सभी एप्लिकेशन) द्वारा एक्सेस किया जा सकता है।

+0

यह पूछे जाने वाले प्रश्न का उत्तर नहीं देता है। पूछताछ आवेदन के साथ वितरित संपत्तियों के बारे में चिंतित है, न कि स्थापना के बाद निर्धारित जानकारी के भंडारण के साथ। उदाहरण के लिए, 'res/raw/'में वितरित एक फ़ाइल। – Dallas

4

Google पर billing के तहत इस पर कुछ अच्छी सिफारिशें हैं। संक्षेप में: दूरस्थ सर्वर का उपयोग करें, obfuscate और सुरक्षित यादृच्छिक nonces का उपयोग करें। आपके एपीके में कुछ भी सुरक्षित नहीं है क्योंकि यह हमेशा रिवर्स इंजीनियर हो सकता है और obfuscation केवल साधारण हमलों के खिलाफ काम करता है।

+2

यदि आप डाउनवोट कृपया निर्दिष्ट क्यों करें। धन्यवाद – Warpzit