2010-11-29 11 views
8

मेरा आवेदन रूबी-ऑन-रेल है, लेकिन मुझे उम्मीद है कि इस प्रश्न का कोई भी जवाब शायद अज्ञात रूपरेखा होगा।तृतीय पक्ष सेवाओं के लिए पासवर्ड संग्रहीत करना

मेरा आवेदन रेल का उपयोग कर जीमेल SMTP के माध्यम से ईमेल भेजता है एक-la ActionMailers:

mail = MyActionMailerSubclass.setup_email 

options = { :address   => "smtp.gmail.com", 
     :port     => 587, 
     :domain    => 'mydomain.com', 
     :user_name   => '[email protected]', 
     :password    => '[email protected]$w0rd', 
     :authentication  => 'plain', 
     :enable_starttls_auto => true } 

mail.delivery_method :smtp, options 
mail.deliver 

ठीक है, कि बहुत अच्छा है ... वहाँ आवेदन कोड में सादे पाठ में जीमेल के लिए अपना पासवर्ड है। या मैं इसे सादे पाठ में डेटाबेस में संग्रहीत कर सकता हूं। जाहिर है दोनों अस्वीकार्य हैं।

नमकीन और हैशिंग, सामान्य तकनीक यहां काम नहीं करेगी क्योंकि मुझे जीमेल के साथ पासवर्ड भेजने की आवश्यकता है।

तो, किसी तृतीय पक्ष सेवा के लिए पासवर्ड सुरक्षित करने के लिए क्या रणनीतियां हैं?

आखिरकार उपयोगकर्ता नाम और पासवर्ड मेरे पास भी नहीं हैं, वे एप्लिकेशन एंड-यूजर से संबंधित होंगे।

उत्तर

0

यदि आवेदन निजी है तो यह कोई चिंता का विषय नहीं होना चाहिए, लेकिन मुझे लगता है कि यह सार्वजनिक/ओपन-सोर्स एप्लिकेशन के लिए है।

अगर ऐसा है, तो के रूप में config/initializers/mail.rb.example उस फ़ाइल की एक बुनियादी उदाहरण जोड़ सकते हैं और अपने .gitignore फाइल करने के लिए असली बात जोड़ें ताकि यह प्रतिबद्ध है कभी नहीं रहा है। इसके बाद, README पर निर्देश जोड़ें कि एप्लिकेशन को mail.rb.example फ़ाइल को मेल.आरबी पर प्रतिलिपि बनाने के लिए आवेदन करने के लिए प्रतिलिपि बनाने की आवश्यकता होगी।

+0

धन्यवाद रयान, जो उस मामले में मदद करता है जहां अन्य कोडर शामिल हैं। मेरी असली चिंता यह है कि अंतिम उपयोगकर्ता अपने खाते से ईमेलिंग कर रहे होंगे। तो मुझे उनके प्रमाण पत्रों को स्टोर करने के लिए एक तरीका चाहिए। – SooDesuNe

+0

वह दृष्टिकोण OP को ओपन-सोर्स उपयोगकर्ताओं से अपना * अपना * पासवर्ड छुपाने में मदद करेगा। मुझे लगता है कि वह किस बारे में चिंतित है और अधिक है कि उसे * अपने * उपयोगकर्ताओं के पासवर्ड को सादे टेक्स्ट में अपने सर्वर पर स्टोर करना होगा, और ज़िम्मेदारी नहीं लेनी चाहिए। – mgiuca

4

जीमेल का एसएमटीपी सर्वर दो प्रमाणीकरण तंत्र का समर्थन करता है: प्लेन और एक्सओयूथ। प्लेन तंत्र के लिए आवश्यक है कि आप उपयोगकर्ता के सादे टेक्स्ट पासवर्ड को जानते हों, और मुझे खुशी है कि आप उन्हें स्टोर करने के लिए तैयार नहीं हैं।

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

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