2013-08-20 5 views
6

मैं एक आईपैड ऐप विकसित कर रहा हूं जो मूल्यवान जानकारी के बहुत बड़े डेटाबेस पर निर्भर करेगा। मैं स्वयं डिवाइस से बहुत परिचित नहीं हूं (मेरे पास व्यक्तिगत आईपैड नहीं है, और न ही मैंने कभी भी इस ऐप के विकास के बाहर एक का उपयोग किया है)। उपयोगकर्ता सीधे मेरे ऐप के माध्यम से डेटाबेस में डेटा सीधे नहीं देख सकते हैं।मेरे उपयोगकर्ताओं के पास मेरे ऐप के साथ एक SQLite डेटाबेस I कितना एक्सेस होगा?

क्या कोई अन्य तरीका होगा जो उपयोगकर्ता मेरे डेटाबेस में डेटा तक पहुंच सकते हैं (शायद डिवाइस को कंप्यूटर में प्लग करके और एक्सकोड या आईट्यून्स के माध्यम से जाकर)? यदि नहीं, तो मैं थोड़ा जेलब्रेकिंग पर पढ़ रहा हूं, और मैंने देखा है कि ऐसा करने से उपयोगकर्ता को डिवाइस की फाइल सिस्टम तक पहुंच मिल सकती है, जिससे वे मेरे डेटाबेस की सामग्री देख सकें? या जेलब्रोकन उपकरणों पर डेटाबेस फ़ाइलों को देखने के लिए जेलब्रैकिंग और ऐप इंस्टॉल करना संभव होगा (वास्तव में this question सुझाव देगा कि जेलब्रोकन उपकरणों के लिए "डेटाबेस रीडर" ऐप विकसित करना काफी आसान हो सकता है)?

+3

औसत iDevice उपयोगकर्ता डेटाबेस को नहीं जानता यदि आप इसे अपनी नाक को घुमाते हैं। एक जानकार उपयोगकर्ता आसानी से डीबी फाइलों को पुनः प्राप्त करने में सक्षम होगा और iDevice से कुछ भी/सबकुछ पकड़ लेगा यदि वे वांछित हैं। –

+2

डेटाबेस सर्वर पर संग्रहीत किसी भी महत्वपूर्ण डेटाबेस जानकारी को रखें - आईपैड नहीं। किसी स्थानीय फ़ाइल/डेटाबेस में संग्रहीत कुछ भी आईपैड उपयोगकर्ता के लिए सुलभ होगा, हालांकि आप इस जानकारी को एन्क्रिप्ट करने में देख सकते हैं। –

उत्तर

5

यदि डेटाबेस है, तो लोग इसे स्पर्श कर सकते हैं। यह सिर्फ एक बिजली उपयोगकर्ता से थोड़ा अधिक होने का मामला है। हो सकता है कि वे डेटाबेस से डेटा को पढ़ने में सक्षम न हों, अगर उनके पास प्रमाणीकरण करने के लिए प्रमाण-पत्र नहीं हैं, लेकिन फिर आपके हार्ड डिस्क में डेटाबेस होने के बाद, यह केवल धैर्य और ज्ञान को तोड़ने का विषय है ।

यह एक सिद्धांत है जो किसी भी डिवाइस और ऑपरेटिंग सिस्टम पर लागू होता है, न केवल आईपैड और आईओएस। यदि आप नहीं चाहते हैं कि आपके उपयोगकर्ता आपके ऐप का उपयोग करने वाली किसी फ़ाइल के साथ गड़बड़ कर रहे हों, तो आप इसे एक अजीब लंबी एन्क्रिप्शन कुंजी से एन्क्रिप्ट कर सकते हैं। कोई अंततः उस जानकारी को क्रैक कर सकता है ... आप जो भी कर सकते हैं यह सुनिश्चित कर लें कि वे आपके ऐप को अप्रचलित होने से पहले ऐसा करने में सक्षम नहीं होंगे।

अन्यथा, अपने डेटा को सर्वर में रखें, जहां लोग इसे स्पर्श नहीं कर सकते हैं।

+0

आह, यही वह है जिसे मैं डरता था।हमारे पास सर्वर पर भी डेटा है, लेकिन ऐप की आवश्यकताओं में से एक यह है कि इंटरनेट एक्सेस होने पर भी 100% कार्यात्मक होना चाहिए - यही कारण है कि मुझे डिवाइस पर सबकुछ स्टोर करने की आवश्यकता है पहले स्थान पर। मैं एन्क्रिप्शन से बहुत परिचित नहीं हूं, लेकिन ऐसा लगता है कि मुझे वहां दिखना शुरू करना है। – GeneralMike

+0

क्या आपको वह जानकारी है जो आपको 100% गोपनीय है, या केवल कुछ सेटिंग्स जिन्हें आप उपयोगकर्ता को गड़बड़ नहीं करना चाहते हैं? – Renan

+0

100% गोपनीय पक्ष पर अधिक। मेरी कंपनी लगभग 20 वर्षों तक हमारे उद्योग के लिए महत्वपूर्ण डेटा एकत्र कर रही है, और यही वह डेटा है जिसे मुझे एक्सेस करने की आवश्यकता है। डर यह है कि एक ग्राहक को उस डेटा तक पहुंच प्राप्त होगी, इसकी प्रतिलिपि होगी, और अब हमारी सेवाओं की आवश्यकता नहीं होगी, या प्रतिद्वंद्वी बनने के लिए इसे एक महत्वपूर्ण कदम उठाने के पत्थर के रूप में उपयोग किया जाएगा। – GeneralMike

1

मैं एक डेवलपर हूं (एक हैकर नहीं) इससे कोई फर्क नहीं पड़ता कि मैं अपने ऐप्स की रक्षा करने की कोशिश करता हूं, जैसे ही कोड या डेटाबेस डिवाइस पर होता है (एन्क्रिप्टेड या नहीं) मैं डेटा को सार्वजनिक रूप से मानता हूं। अगर डिक्रिप्शन कुंजी फोन पर पास की जाती है और फोन पर डिक्रिप्ट की जाती है, तो उस डेटा को भी सार्वजनिक मानें। मूल रूप से आप खराब हो जाते हैं। अपने ऐप्स का बचाव छोड़ दो। और बस कूलर सामान बनाने शुरू करें, और इंटरनेट पर डेटा भेजते समय HTTPS का उपयोग करें, जो मैं पूछ सकता हूं। अपनी चाबियों, एपी टोकन, उच्च स्कोर, सिक्के, आदि का बचाव करना काफी सचमुच असंभव है। हाँ कोशिश करने के लिए थोड़ा सा करो, लेकिन आपके प्रयास निष्फल हैं। हर दिन सार्वजनिक हैकर टूल्स स्थानीय रूप से एन्क्रिप्टेड डेटाबेस, स्थानीय रूप से एन्क्रिप्टेड ऐप्स के अंदर देखने के लिए, obfuscated ऐप्स के अंदर देखते हैं, हर दिन बेहतर और बेहतर हो रहा है। आप इसे हरा नहीं सकते। डेवलपर्स हैकर्स, अवधि से ज्यादा चालाक नहीं हैं। अंतिम उपयोगकर्ता को सुरक्षा की झूठी भावना दे रही है। यह आपके घर को लॉक करने या अपनी कार को लॉक करने की तरह है, क्या आप किसी को तोड़ने से रोक सकते हैं? नहीं। इसे हल करने का एकमात्र तरीका एक बड़ा गधा बैंक (उर्फ सर्वर) बनाना है, कुछ टेलर को फ्रंट डेस्क (उर्फ क्लाउड एपीआई) पर रखें, और इसके साथ किया जाए।

0

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

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