पृष्ठभूमि का एक छोटा सा -क्या MySQL * अस्थायी रूप से * में सादे टेक्स्ट पासवर्ड स्टोर करना सुरक्षित है?
मैं जावा में चलने वाला एक गेम सर्वर चलाता हूं, और एक मंच जो PHP (phpbb) में चलता है। मेरे पास गेम और फोरम खाते जुड़े हैं, जैसे कि गेम में पासवर्ड बदलना स्वचालित रूप से फोरम खाते के लिए पासवर्ड बदल देता है। दोनों सिस्टम अलग-अलग पासवर्ड हैशिंग एल्गोरिदम का उपयोग करते हैं, और मुझे phpbb के अंतर्निर्मित फ़ंक्शंस का उपयोग कर फोरम साइड पर पासवर्ड हैश अपडेट करना होगा, जिसका अर्थ है कि मुझे उन्हें एक PHP स्क्रिप्ट से कॉल करना होगा (अपना कोड चलाने के बजाए)।
ऐसा करने के लिए, मैंने पासवर्ड स्क्रिप्ट को बदलने के लिए जावा स्क्रिप्ट को HTTP स्क्रिप्ट बनाकर PHP स्क्रिप्ट को कॉल करने का निर्णय लिया है, ताकि PHP स्क्रिप्ट को ट्रिगर करने के लिए पासवर्ड बदलने वाली प्रक्रिया को पूरा किया जा सके। मंच खाता हालांकि, मैं सादे टेक्स्ट पासवर्ड को किसी भी HTTP कॉल में नहीं रखना चाहता, क्योंकि यह लॉग फ़ाइलों और शायद अन्य शोषक क्षेत्रों में दिखाई दे सकता है। मेरा वर्तमान विचार यह है कि जब जावा पक्ष पासवर्ड बदल रहा है, तो यह नया सादा टेक्स्ट पासवर्ड डेटाबेस तालिका में रखता है, और उसके बाद PHP स्क्रिप्ट को ट्रिगर करने के लिए HTTP अनुरोध करता है, जैसे HTTP अनुरोध में कोई हैश या संवेदनशील जानकारी नहीं जाती है। HTTP कॉल केवल खाते के उपयोगकर्ता नाम को बदलने के लिए, और प्रमाणीकरण के लिए साझा किए गए गुप्त प्लस उपयोगकर्ता नाम का md5 हैश पास करेगा। जब PHP स्क्रिप्ट चलता है, तो यह उपयोगकर्ता के डेटाबेस से नए सादे टेक्स्ट पासवर्ड को पुनर्प्राप्त करता है, तुरंत इसे हटा देता है, फिर phpbb के हैशिंग एल्गोरिदम के माध्यम से सादे टेक्स्ट पासवर्ड चलाता है और फ़ोरम डेटाबेस अपडेट करता है।
सामान्य स्थितियों के तहत, सादे टेक्स्ट पासवर्ड शायद हटाए जाने से पहले एक सेकंड से भी कम समय तक डेटाबेस में होगा। आदर्श रूप से, मैं इसे कहीं भी संग्रहीत नहीं करूँगा, लेकिन मुझे यकीन नहीं है कि जावा से PHP में आवश्यक परिवर्तन को कैसे संवाद करना है जब मैं भविष्यवाणी नहीं कर सकता कि फोरम का पासवर्ड हैश क्या होगा, इसलिए मुझे किसी भी तरह से भेजने की ज़रूरत है हैशिंग करता है जो PHP स्क्रिप्ट के लिए plaintext पासवर्ड।
ऐसा करने के बेहतर तरीके पर कोई विचार, या सादे टेक्स्ट पासवर्ड को बहुत कम समय के लिए संग्रहीत करने पर कोई प्रतिक्रिया है? मैं MySQL लॉगिन को सुरक्षित मानता हूं और अन्य लोगों या परियोजनाओं के साथ साझा नहीं किया जाता है।
धन्यवाद!
क्या आप डीबी में इसे स्टोर करने से पहले इसे जावा से एन्क्रिप्ट कर सकते हैं और डीबी से इसे पढ़ने के बाद इसे PHP से डिक्रिप्ट कर सकते हैं? – 0xFE
एन्क्रिप्शन एक सभ्य विचार है, क्योंकि स्पष्ट रूप से आपके पास पहले से ही एक साझा रहस्य है। एचटीटीपीएस और POST के माध्यम से PHP डेटा को केवल उपयोगकर्ता नाम और सादे टेक्स्ट पासवर्ड भेजने के बारे में क्या है? – slashingweapon
बेहतर अभी तक, PHP बीबी https://wiki.phpbb.com/Authentication_plugins के लिए कस्टम प्रमाणीकरण प्लगइन बनाएं, यह कस्टम पासवर्ड प्रमाणीकरण योजनाओं का समर्थन करता है, और यदि लागू हो तो आपको एकल साइन-ऑन का लाभ उठाने की अनुमति देनी चाहिए। –