2012-04-27 11 views
7

मेरे मामले में मैं ड्रॉपबॉक्स एपीआई का उपयोग कर रहा हूं। वर्तमान में मैं एक JSON फ़ाइल में कुंजी और रहस्य संग्रहीत कर रहा हूं, बस इतना है कि मैं इसे गिटबिन कर सकता हूं और इसे गीथब रेपो से बाहर रख सकता हूं, लेकिन स्पष्ट रूप से यह सुरक्षा दृष्टिकोण से कोड में रखने से बेहतर नहीं है। पहले (आमतौर पर व्यावसायिक कारणों से) पाइथन की सुरक्षा/obfuscating के बारे में बहुत सारे प्रश्न हैं और जवाब हमेशा होता है "नहीं, पाइथन इसका मतलब नहीं है।"मुझे पाइथन ऐप में एपीआई कुंजी कैसे स्टोर करनी चाहिए?

इस प्रकार, मैं कोड की सुरक्षा करने का कोई तरीका नहीं ढूंढ रहा हूं, लेकिन सिर्फ एक समाधान है जो मुझे मेरे एपीआई विवरणों को प्रकट किए बिना मेरे ऐप को वितरित करने देगा।

+0

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

+0

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

+0

@ डेलनान लेकिन क्या एपीआई कुंजी HTTP यातायात में दिखाई देगी? ड्रॉपबॉक्स एसएसएल पर सबकुछ करते हैं। मुझे नहीं पता कि वे जीईटी या पोस्ट वैरिएबल का उपयोग करते हैं या सिर्फ उन्हें HTTP अनुरोध के शीर्षकों में डालते हैं। क्या वे चीजें एक HTTPS अनुरोध में एन्क्रिप्टेड हैं, या केवल अनुरोध के निकाय हैं? – espekia

उत्तर

2

सादा पाठ। कोड वितरित होने पर कोई भी अपवित्रता प्रयास व्यर्थ है।

2

पता नहीं है कि यह आपके मामले में व्यवहार्य है या नहीं। लेकिन आप एपीआई को आपके द्वारा होस्ट की जाने वाली प्रॉक्सी के माध्यम से एक्सेस कर सकते हैं।

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

+0

सामान्य रूप से यह एक अच्छा समाधान है, लेकिन मेरे मामले में मैंने ड्रॉपबॉक्स का विशेष रूप से उपयोग करना चुना क्योंकि मेरे पास न तो संसाधन हैं और न ही मेरा स्वयं का सर्वर होस्ट करने का झुकाव है, मैं बस ग्राहक बनाने पर ध्यान केंद्रित करना चाहता था। – espekia

1

अपने परिदृश्य के आधार पर दो तरीके हैं:

आप, अंत उपयोगकर्ताओं के लिए एक वेब अनुप्रयोग के विकास सिर्फ एक तरीका है कि अपनी API कुंजी प्रकटीकरण के नहीं आती है में होस्ट कर रहे हैं । तो इसे एक अलग फ़ाइल में गिटिग्नर रखें और इसे केवल अपने सर्वर पर अपलोड करना ठीक होना चाहिए (जब तक आपके सर्वर पर कोई उल्लंघन नहीं होता है)। कोई भी अपवित्रता कोई व्यावहारिक लाभ नहीं जोड़ती है, यह केवल सुरक्षा की झूठी भावना देगी।

यदि आप डेवलपर्स के लिए फ्रेमवर्क/लाइब्रेरी विकसित कर रहे हैं या अंतिम उपयोगकर्ताओं के लिए क्लाइंट एप्लिकेशन विकसित कर रहे हैं, तो उन्हें अपने आप एपीआई कुंजी जेनरेट करने के लिए कहें।

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

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