क्या मुझे ईमेल पते को डेटाबेस में प्लेनटेक्स्ट के रूप में रखना चाहिए?


14

यह सभी के लिए स्पष्ट है ( मुझे उम्मीद है ) कि कम से कम नमस्कार / हैशिंग के बिना पासवर्ड संग्रहीत करना एक भयानक विचार है।

ईमेल के बारे में क्या? मान लें कि आप सदस्यता ईमेल पता रखते हैं, यदि आप इसे ठीक से एन्क्रिप्ट करते हैं तो यह उपयोगकर्ताओं को ईमेल भेजने के लिए उपयोग करने योग्य नहीं हो सकता है। दूसरी ओर, यदि आप इसे एन्क्रिप्ट नहीं करते हैं और डेटाबेस चोरी हो जाता है, तो आपके सभी उपयोगकर्ता संभावित स्पैम का जोखिम उठाते हैं।

यह सवाल कानून-विशिष्ट मुद्दों के बारे में नहीं है (हालांकि उन्हें दिया जा सकता है, वे देश-निर्भर रहते हैं) या डेटाबेस को स्वयं एन्क्रिप्ट करने के बारे में।


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

आप एक अलग एप्लिकेशन सेट कर सकते हैं जो उदाहरण के लिए केवल ईमेल + पासवर्ड (+ अन्य निजी डेटा) संग्रहीत करता है। आप इसे ईमेल द्वारा कॉल करने के लिए उपयोग कर सकते हैं, उदाहरण के लिए एक आंतरिक बाकी एप के साथ : localEmailServer / sendInvite / 123 जहां 123 = उपयोगकर्ता आईडी। आप लॉगिन के लिए भी ऐसा ही कर सकते हैं, लोकलइमेलस्वर / लॉगिन पर पोस्ट कर सकते हैं जो सही या गलत हो सकता है। इस तरह से आपका एप्लिकेशन हैक हो सकता है लेकिन फिर भी उनके पास ई-मेलड्रेस नहीं होगा। यदि आप इस सेवा के अनुरोधों की मात्रा को सीमित करते हैं तो यह अधिक सुरक्षित है क्योंकि आप इस हिस्से पर SQL इंजेक्शन जैसी चीजों के लिए असुरक्षित नहीं हैं।
ल्यूक फ्रेंकेन

जवाबों:


9

ईमेल पतों की एक नमकीन हैश स्टोर करने पर विकल्प हो सकता है यदि आप उन रिकॉर्ड्स को केवल खाता पुष्टि / प्रमाणीकरण के लिए रखते हैं।

अन्य मामलों में, यह मुझे लगता है कि ईमेल को एन्क्रिप्ट करने से बदले में बहुत कम हासिल करते हुए डेटाबेस को बनाए रखने का काम कठिन हो जाएगा।

संभवतः डेटाबेस की पहुँच को सुरक्षित करना ही एक बेहतर विकल्प है: आमतौर पर डेटाबेस में बहुत सारी अन्य जानकारी होती है जिसे आप इकट्ठा नहीं करना चाहते हैं।


Stackoverflow पर एक समान प्रश्न: क्या यह डेटाबेस में ईमेल पतों को एन्क्रिप्ट करने के लायक है?


यह सवाल नहीं देखा! रिकॉर्ड के लिए, यह एक पुराना सवाल है, लेकिन मेरा मानना ​​है कि यह अब प्रोग्रामर का होना चाहिए।
पियरे अरलाउड

3
@PierreArlaud: वास्तव में, पूरी बात सूचना सुरक्षा पर बेहतर होगी क्योंकि इसका वास्तव में प्रोग्रामिंग से कोई लेना-देना नहीं है।
१२:५

वास्तव में एन्क्रिप्टिंग ईमेल पर एक वापसी है। यदि आप उसी समझौता किए गए डेटाबेस में कुंजियों को संग्रहीत नहीं करते हैं, तो आप बुरे आदमी को ईमेल का उपयोग करने से वंचित करते हैं। याद रखें कि ईमेल का उपयोग खातों के सक्रियण और क्रेडेंशियल्स के परिवर्तन के लिए किया जाता है।
NoChance

2

मुझे लगता है कि आपने पहले ही यह सब कह दिया।

केवल एक चीज जिसके बारे में मैं सोच सकता हूं वह यह है कि ईमेल पतों को संग्रहीत करने के लिए SHA1 जैसे एक तरह से हैश फिल्टर का उपयोग न करें। अपने आवेदन में कुछ (प्रतिवर्ती) सार्वजनिक कुंजी एन्क्रिप्शन का उपयोग करें और सुनिश्चित करें कि आपकी निजी कुंजी डेटाबेस के पास नहीं है, ताकि वे एक साथ "चोरी" न कर सकें।

इस तरह, आप ईमेल भेजने के लिए अभी भी ईमेल पते अनएन्क्रिप्ट कर सकते हैं,


6
तथा? तथा? सस्पेंस मुझे मार रहा है :)
पियरे अरलाउड

और क्या? क्या है सस्पेंस? डेटाबेस में संग्रहीत करने से पहले अपने ऐप में एन्क्रिप्ट (डिक्रिप्ट) करने का मतलब है कि डेटाबेस के चोरी होने, हैक होने आदि के लिए कोई चिंता नहीं है लेकिन, जब आप ईमेल भेजना चाहते हैं तो आप डेटाबेस से ईमेल पते को डिक्रिप्ट कर सकते हैं। यह नहीं कि आप क्या चाहते थे। ? क्या मैं कुछ भूल रहा हूँ?
मावग का कहना है कि मोनिका

2
आपके उत्तर के अंतिम चरित्र पर एक टिप्पणी: डी
पियरे अरलाउड

मैं खोजने की कोशिश कर रहा हूं कि आपका जवाब क्या कहता है कि मैनलो नहीं है। मूल रूप से, विचार ईमेल का प्रतिवर्ती हैश है, जैसे कि नमकीन हैश। या शायद आपके मन में कुछ पूरी तरह से अलग था?
पियरे अरलाउड

क्षमा करें, मुझे लगता है कि हमने उसी समय प्रस्तुत किया था।
मावग का कहना है कि
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.