2012-01-08 3 views
5

मैं लॉगिन फॉर्म में पासवर्ड के साथ सरल हैशिंग के बारे में खोज रहा था। मैं इस http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/ पर आया था। यहां वह पासवर्ड है, नमक बनाता है, और फिर पासवर्ड & नमक बनाता है। मैं अपने आप को फार्म एक लॉगिन का निर्माण कर रहा हूँ, इस abc.phpPHP सबमिट करने के बाद पासवर्ड को टेक्स्ट के रूप में भेजा जाता है?

<form name="register" action="register.php" method="post"> 
Username: <input type="text" name="username" maxlength="30" /> 
Password: <input type="password" name="pass1" /> 
Password Again: <input type="password" name="pass2" /> 
<input type="submit" value="Register" /> 
</form> 

जमा करने के बाद चला जाता है के लिए, register.php, यह

$u=$_REQUEST['username']; 
$p=$_REQUEST['pass1']; 
//salt create function 
//hashing code 
//final hash password 

है और फिर $ u & 'अंतिम पासवर्ड' में प्रस्तुत करने डेटाबेस।

प्रश्न: मेरा प्रश्न abc.php से फ़ॉर्म सबमिट करते समय, क्या पासवर्ड टेक्स्ट के रूप में जाता है?

और यदि हां, तो इसे पढ़ने का कोई मौका है, और फिर हैशिंग पासवर्ड की आवश्यकता क्या है, क्योंकि जब भी मैं लॉगिन करता हूं, तो मैं पृष्ठ सबमिट करूंगा, और $ _REQUEST से पास और उपयोगकर्ता नाम पुनर्प्राप्त कर सकता हूं एक और पृष्ठ, जहां इसकी जांच की जाएगी, यह पाठ के रूप में यात्रा की जाती है, और इस प्रकार किसी के द्वारा पढ़ा जा सकता है।

+0

पासवर्ड के साथ दो समस्याएं हैं: संग्रहण और संचरण। भंडारण सबसे महत्वपूर्ण है, आपको * हैश पासवर्ड संग्रहीत करना होगा। ट्रांसमिशन के दौरान इसे सुरक्षित करना भी एक अच्छा विचार है, लेकिन उतना महत्वपूर्ण नहीं है। पासवर्ड को लॉग इन करने के लिए सर्वर से/प्रत्येक HTTP अनुरोध के मध्य में कहीं भी डालने की तुलना में, सर्वर को हैक करना और संपूर्ण डेटाबेस को पढ़ने के लिए बहुत आसान है। तो, हैशिंग (जैसा कि इस लेख में वर्णित है) एक आवश्यकता है।लेकिन यदि आपके पास साधन हैं, तो आपको अपना पूरा लॉगिन क्षेत्र SSL/https के अंतर्गत रखना चाहिए। एसएसएल सक्रिय होने पर यहां कोड नमूना पूरी तरह से सुरक्षित होगा। –

+0

@AhihiBeckert धन्यवाद। – Nikhar

उत्तर

6

पासवर्ड अब स्पष्ट टेक्स्ट में भेजा गया है। एचटीटीपीएस के उपयोग के बिना एक कामकाज है। जावास्क्रिप्ट के साथ HTTP सॉकेट पर भेजने से पहले आप पासवर्ड को हश कर सकते हैं। वहाँ कई ट्यूटोरियल हैं। यह https का उपयोग करने के समान नहीं है लेकिन अभी भी कुछ भी बेहतर नहीं है।

2

उस लेख का "सुरक्षित" हिस्सा स्पष्ट रूप से पासवर्ड के संग्रहण से संबंधित है। क्लाइंट या सर्वर की तरफ नेटवर्क सुरक्षित नहीं है (यानी नेटवर्क पर पैकेट स्निफ़र वाला कोई व्यक्ति) यदि कोई पासवर्ड पासवर्ड को रोक सकता है।

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

2

यदि उपयोगकर्ता आपके फॉर्म को सबमिट करता है तो ब्राउज़र पोस्ट अनुरोध के हिस्से के रूप में पासवर्ड भेजता है।

यदि आप SSL (https) का उपयोग कर रहे हैं तो ब्राउज़र के बीच पूर्ण संचार और आपका वेबसर्वर एन्क्रिप्ट किया गया है (इसलिए डेटा किसी तृतीय पक्ष द्वारा नहीं पढ़ा जा सकता है), लेकिन यदि आप किसी भी व्यक्ति का उपयोग कर रहे हैं जो यातायात देख सकता है, पासवर्ड देख सकते हैं

+0

+1 यह मानने के लिए कि वह पहले से ही SSL का उपयोग नहीं कर रहा है –

6

आपका पासवर्ड HTTP पोस्ट या HTTP प्राप्त के माध्यम से भेजा जाता है, आपके फॉर्म में विधि पर निर्भर करता है। HTTP पोस्ट या HTTP गेट सॉकेट स्ट्रीम के माध्यम से भेजा जाता है और कोई आपके डेटा को रास्ते में, आपके नेटवर्क व्यवस्थापक, आपके आईएसपी प्रदाता इत्यादि को स्नीफ कर सकता है

यदि आप सुरक्षित लॉगिन बनाना चाहते हैं, तो आपके सर्वर को HTTPS का समर्थन करना होगा। यदि आपने HTTPS के माध्यम से भेजा है, तो कोई भी आपका डेटा नहीं पढ़ सकता है।

2

जिस कोड का आप उल्लेख कर रहे हैं वह केवल पासवर्ड संग्रहण के बारे में है, इसलिए हाँ, पासवर्ड स्पष्ट टेक्स्ट में इंटरनेट पर जाएगा और हाँ, कोई इसे उदाहरण के लिए वाईफ़ाई हॉटस्पॉट पर रोक सकता है।

आपका सबसे अच्छा, सबसे सिद्ध समाधान एसएसएल का उपयोग लॉगिन संचार के लिए करना है।

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