एसएसएल के बिना नहीं
यह सुरक्षित नहीं है अगर पासवर्ड सादे पाठ में नेटवर्क पर भेजा जाता है। यदि पासवर्ड को सादे पाठ में नेटवर्क पर भेजा जाता है, तो सर्वर साइड पर पासवर्ड को सुरक्षित करना भी सुरक्षित नहीं है।
चूंकि HTML <input type="password"/>
टैग सादे पाठ में अपनी सामग्री भेजता है, इसलिए यह एक समस्या होगी कि आप सर्वर पर पासवर्ड कैसे संग्रहीत करते हैं, जब तक कि आपकी वेबसाइट SSL का उपयोग पासवर्ड संचारित करने के लिए नहीं करती है।
(HTTP प्रमाणीकरण, जो एक पासवर्ड के लिए पूछते हुए ब्राउज़र में एक डायलॉग बॉक्स को पॉप अप करता है, सर्वर और ब्राउज़र में सामान्य रूप से क्या प्रमाणीकरण तंत्र है, इस पर निर्भर करते हुए, यह स्पष्ट पाठ नहीं हो सकता है। इसलिए इसका उपयोग किए बिना इससे बचने का एक तरीका हो सकता है। एसएसएल)।
यदि साइट व्यवस्थापक संदिग्ध हैं तो नहीं
अब, मान लें कि आप वेब साइट करने के लिए HTTPS का उपयोग कर रहे हैं, तो यह सुरक्षित हो सकता है यदि आप अपने साइट प्रशासकों (जो सादे पाठ पासवर्ड पढ़ सकते हैं) पर भरोसा करते हैं, और अन्य लोग जिनके पास मशीन का उपयोग ठीक से व्यवहार करने के लिए है। अब, यह स्पष्ट हो सकता है कि वे आपकी वेबसाइट के साथ कुछ भी कर सकते हैं (क्योंकि वे इसे प्रशासित करते हैं), लेकिन अगर वे पासवर्ड पढ़ सकते हैं, तो अन्य लोगों की साइटों पर चोरी किए गए लॉगिन / पासवर्ड जोड़े का उपयोग करने में भी सक्षम हो सकते हैं।
एक ऐसा तरीका जो प्रशासक से पासवर्ड सुरक्षित रखता है
पासवर्ड को स्टोर और चेक करने का एक सुरक्षित तरीका इस प्रकार है:
def change_password user, new_password
salt = random(65536).to_s(16) #will be 4 characters long
password_hash = salt + hash(salt + new_password)
store(user,password_hash)
end
def does_password_match? user, entered_password
correct_password_hash = retrieve(user)
salt = correct_password_hash[0...4]
entered_password_hash = salt + hash(salt + entered_password)
return correct_password_hash == entered_password_hash
end
हैश फ़ंक्शन के लिए, कुछ मजबूत और कुछ का उपयोग करने का प्रयास करें, जिसमें अभी तक जंगली में अच्छे इंद्रधनुष तालिकाओं नहीं हैं। आप इंद्रधनुष की तालिकाओं के चारों ओर आवश्यक कार्य करने पर नमक की लंबाई को बदल सकते हैं।
आप जिस वातावरण में हैं, उसके आधार पर आपके नेटवर्क विलंबता में परिवर्तनशीलता, और क्या उपयोगकर्ता नाम पारंपरिक रूप से ज्ञात हैं, तो आप hash('0000'+entered_password)
हमलावरों को रोकने के लिए उपयोगकर्ता के मौजूद न होने पर एक अन्य कोड पथ गणना करना चाह सकते हैं यह निर्धारित करना कि उपयोगकर्ता का नाम उस समय के आधार पर मान्य है जो यह निर्धारित करता है कि पासवर्ड गलत है।