2009-11-16 18 views
5

मैं नियमित रूप से HTTP पोस्ट विधि के माध्यम से लॉगिन जानकारी भेजने के लिए एक मानक रूप का उपयोग करता हूं और फिर यह जांचने के लिए php का उपयोग करके इसे सत्यापित करता हूं कि विवरण सही हैं या नहीं। मैं पासवर्ड की कुछ डिग्री देने के लिए पासवर्ड (और कभी-कभी उपयोगकर्ता नाम) पर एक एमडी 5 हैश का उपयोग करता हूं, इसलिए यदि मैं किसी अनधिकृत व्यक्ति या उसके जैसा कुछ देखता हूं तो मैं अपने कोड में कच्चा पासवर्ड संग्रहीत नहीं कर रहा हूं।लॉगिन फॉर्म के लिए HTTP POST का उपयोग

मुझे पूरा यकीन है कि मैंने किसी को भी सुरक्षा की कमी की अस्पष्ट समझ के साथ बनाया है या कम से कम उत्पीड़न में झुकाव है।

मैं हाल ही में एक मंच पर काम कर रहा हूं जिसमें उपयोगकर्ताओं और पासवर्ड का एक MySQL डेटाबेस है, पासवर्ड एमडी 5 हैश के रूप में संग्रहीत हैं, लेकिन मुझे चिंता है कि HTTP पोस्ट के माध्यम से लॉगिन फॉर्म भेजते समय सूचना को अवरुद्ध किया जा सकता है है। मैं MySQL इंजेक्शन हमलों की संभावनाओं से अवगत हूं और सोचता हूं कि मैं किसी भी साधारण हमले से सुरक्षित हूं।

जब मैं इस तरह की चीजें की बात करता हूं तो मैं सुरक्षा विशेषज्ञ नहीं हूं, लेकिन HTTP पर भेजे जाने पर पासवर्ड को अवरुद्ध करने की संभावनाओं को सीमित करना चाहता हूं।

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

चीयर्स

उत्तर

5

आप एक चुनौती नमक सर्वर द्वारा प्रदान के आधार पर पासवर्ड की एक क्लाइंट-साइड हैश क्या करने की जरूरत होगी। प्रत्येक चुनौती के लिए यह चुनौती अलग होनी चाहिए।

इस तरह, यदि पासवर्ड हैश को अवरुद्ध किया गया है, तो यह उपयोगी कुछ भी उपयोगी नहीं होगा, क्योंकि अगले प्रमाणीकरण के लिए एक अलग हैश की आवश्यकता होगी।

वैसे भी, HTTPS सही और सुरक्षित तरीका होना चाहिए।

+0

php का उपयोग करके ऐसा करने के लिए सबसे अच्छा हैशर (यदि यह भी एक शब्द है) क्या है? और भेजने से पहले इनपुट इनपुट करने का सबसे अच्छा तरीका क्या है? मुझे लगता है कि यह गलत हो सकता है, कि मैं उपयोगकर्ता इनपुट लेने के लिए जावास्क्रिप्ट का उपयोग करना चाहता हूं और फॉर्म सबमिट करने से पहले इसे हैश करता हूं, लेकिन यदि जावास्क्रिप्ट बंद है तो यह काम नहीं करेगा। – andyface

+0

मैं आमतौर पर सुरक्षा और compatibily दोनों के लिए मानक एल्गोरिदम के लिए चिपके रहते हैं। PHP में sha1() फ़ंक्शन है जो अधिकांश उपयोगों के लिए ठीक है। ऐसा करने के लिए आपको कुछ क्लाइंटसाइड कोड की ज़रूरत है, चाहे वह जावास्क्रिप्ट, एक एप्लेट, ब्राउज़र प्लगइन इत्यादि हो। मैं जेएस के लिए जाऊंगा। आप हमेशा एक कम सुरक्षित, स्क्रिप्ट रहित लॉगिन फॉर्म प्रदान कर सकते हैं। – Patonza

+0

https कैश नहीं मिलता है, है ना? मुझे नहीं लगता कि आपको कुछ छोटे फोरम के लिए इसकी ज़रूरत है ... –

0

एक बुनियादी सुझाव होगा: किसी पर भरोसा न करें।

तो, अपने टेक्स्ट फ़ील्ड में जावास्क्रिप्ट के लिए, एसक्यूएल इंजेक्शन के लिए अपने पोस्ट किए गए डेटा का परीक्षण करें, और अपने डेटाबेस में संग्रहीत सादे पासवर्ड से बचें।

+0

"किसी पर भरोसा न करें।" - मैंने कभी नहीं किया: डी युक्तियों के लिए धन्यवाद। – andyface

0

आपको सभी प्रकार के लॉगिन, धोए या नहीं के लिए HTTPS लागू करना चाहिए।

यदि पासवर्ड धोया गया है लेकिन HTTP द्वारा प्रेषित किया गया है, तो कोई भी हैश को चुरा सकता है और इसे स्वयं पोस्ट कर सकता है। आपका समाधान वास्तविक पासवर्ड को अस्पष्ट करने के अलावा कोई वास्तविक सुरक्षा प्रदान नहीं करता है।

यदि आप HTTPS कार्यान्वयन और प्रमाणपत्र प्राधिकरण आपके लिए एक समस्या है तो आप हमेशा एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर सकते हैं।

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