2013-08-09 6 views
14

मेरे ऐप को लॉगिन की आवश्यकता है, और मेरे पास Remember username and password क्षमता है। उपयोगकर्ता नाम और पासवर्डस्थानीय स्टोरेज के साथ डेटा स्टोर करना कितना सुरक्षित है?

localStorage.setItem ('उपयोगकर्ता नाम', उपयोगकर्ता नाम) के साथ संग्रहीत किया जाता है;

उपयोगकर्ता नाम और पासवर्ड संग्रहीत करने का यह तरीका कितना सुरक्षित है? विशेष रूप से एंड्रॉइड पर, मैं चिंतित हूं, अगर अन्य ऐप्स के पास डेटा तक पहुंच है और लॉगिन जानकारी प्राप्त कर सकती है।

ऐप आईओएस और एंड्रॉइड के लिए है, और मैं PhoneGap 2.9 का उपयोग कर रहा हूं।

उत्तर

4

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

संपादित करें: मैं अभी भी पासवर्ड हैशिंग के बारे में सोचूंगा।

+1

क्यों पासवर्ड हैश/क्यों एक यादृच्छिक API टोकन है उपयोग करने के लिए नहीं मैं एक खंड जोड़ा बेहतर: https://stackoverflow.com/a/18144689/1518423 – stefreak

15

लोकल स्टोरेज सामान्य परिस्थितियों में है जो केवल आपके ऐप द्वारा सुलभ है। यह उतना ही सुरक्षित है जितना विशिष्ट प्लेटफ़ॉर्म (आईओएस, एंड्रॉइड) पर सैंडबॉक्स आपके ऐप के डेटा को अन्य ऐप्स द्वारा पढ़ने से बचाने में सक्षम है।

कभी-कभी सैंडबॉक्स उतना मजबूत नहीं होता जितना आप उम्मीद कर सकते हैं, उदा। इन मामलों में:

  • डिवाइस निहित है या जेलब्रेक
  • निर्माता सुरक्षा अद्यतन प्रदान करने में विफल या उपयोगकर्ता बस को अद्यतन नहीं किया
  • हमलावर उदाहरण के लिए डिवाइस के लिए शारीरिक पहुँच गया है अगर यह होता है चोरी हो गया।

यदि हमलावर के पास क्लीयरएक्स्ट पासवर्ड और उपयोगकर्ता नाम तक पहुंच है, तो वह या अन्य खातों के लिए भी कोशिश कर सकती है (केवल आपकी सेवा नहीं)। इसलिए यदि आपके ऐप के उपयोगकर्ता ने कई सेवाओं के लिए एक ही पासवर्ड का इस्तेमाल किया है, तो हमलावर भी उन तक पहुंच प्राप्त कर सकता है।

पासवर्ड हैश संग्रहीत करने के बारे में क्या?

सर्वर साइड अनुप्रयोगों के लिए यह एक अच्छा विचार है, क्योंकि वे एक संरक्षित वातावरण में भागते हैं (अभिगम नियंत्रण वाले डेटासेंटर, सिस्टम इंजीनियरों सुरक्षा अद्यतनों की देखभाल करते हैं)।

दूसरी ओर, एक फोन आसानी से चोरी हो जाता है, और उपयोगकर्ता अक्सर सुरक्षा अद्यतन स्थापित नहीं करते या नहीं कर सकते हैं।

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

समाधान: दुकान यादृच्छिक रूप से जनरेट पहुंच टोकन: चाहे कितना सरल या जटिल पासवर्ड है, यह सिर्फ असंभव टोकन को देखकर स्पष्ट पाठ पासवर्ड प्राप्त करने के लिए है।

टी एल; डॉ

आप API सेवा का किसी तरह का के खिलाफ प्रमाणीकरण के लिए साख का उपयोग कर रहे हैं, तो आप चाहिए नहीं दुकान पासवर्ड और उपयोगकर्ता नाम स्थानीय रूप से, यहां तक ​​कि एक सुरक्षित स्टोर में इस तरह के आईओएस के रूप में कीचेन।

क्या आप के बजाय केवल यादृच्छिक रूप से जनरेट टोकन भंडारण है क्या करना चाहिए (नहीं एक पासवर्ड हैश!) आपको लगता है कि एपीआई (उपयोगकर्ता के बजाय एक कुकी में सत्र आईडी भंडारण की अवधारणा के लिए इसी तरह से मिलता है/पास संयोजन)। OAuth का उपयोग करने की एक संभावना होगी।

इस तरह से आप सुनिश्चित करते हैं कि असली प्रमाण-पत्र कभी भी लीक नहीं किया जा सकता है, भले ही सैंडबॉक्स डेटा की सुरक्षा में विफल रहता है या फोन चोरी हो जाता है।

+0

2016 में अपडेट ? – Lakshay

+3

अभी भी 2016 में मान्य है। यदि संभव हो तो उपयोगकर्ता क्रेडेंशियल्स को सादे या यहां तक ​​कि सुरक्षित पासवर्ड स्टोर में सहेजने से बचें। बैकएंड में यादृच्छिक प्रमाणीकरण टोकन जेनरेट करें। – stefreak

0

स्थानीय स्टोरेज के अंदर पासवर्ड सहेजना एक सुरक्षित दृष्टिकोण नहीं है। यदि आप फोनगैप का उपयोग कर रहे हैं, तो आईओएस कीचेन के अंदर उपयोगकर्ता नाम & पासवर्ड सहेजने का प्रयास करें। इस प्लगइन पर एक नज़र डालें: https://github.com/shazron/KeychainPlugin

+2

मुझे यह पूछने में देर हो चुकी है लेकिन एंड्रॉइड फोन के बारे में कुछ भी समान है? – Alok

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

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