लॉगिंग विफल प्रयास लॉग पासवर्ड को उजागर करता है


38

मैंने अपनी वेबसाइट पर विफल लॉगिन के प्रयासों को एक संदेश के साथ शुरू किया जैसे कि एक संदेश

Failed login attempt by qntmfred

मैंने देखा है कि इनमें से कुछ लॉग दिखते हैं

Failed login attempt by qntmfredmypassword

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

क्या इससे निपटने का एक बेहतर तरीका है? क्या मुझे इस संभावना की भी चिंता करनी चाहिए?


14
हां आपको इसकी चिंता करनी चाहिए।
फूलसीथ


4
दिलचस्प सवाल क्योंकि यह UX और सुरक्षा को पार करता है। जैसा कि माइकल के एक लिंक में दिया गया है, आप जावास्क्रिप्ट (क्लाइंट-साइड) का उपयोग करके अधिकांश मामलों को रोक सकते हैं। पासवर्ड फ़ील्ड खाली होने पर लॉगिन बटन को अक्षम करें। जावास्क्रिप्ट के बिना उपयोगकर्ता अभी भी लॉगिन स्क्रीन का उपयोग कर सकते हैं, क्योंकि उस स्थिति में बटन अक्षम नहीं होगा।
MSalters

जवाबों:


65

इसे इस तरह आज़माएं:

यदि उपयोगकर्ता नाम मौजूद है, तो लॉग इन करें "विफल लॉगिन प्रयास username"। यदि नहीं, तो 123.45.67.89इसके बजाय " IP द्वारा विफल लॉगिन प्रयास" लॉग करें । लॉग में गलती से पासवर्ड दिखाने की समस्या पर ध्यान देना चाहिए।


14
आप एक खाली पासवर्ड के लिए भी जाँच कर सकते हैं और उस मामले में एक उपयुक्त त्रुटि के साथ विफल हो सकते हैं।
माइक वेलर

उपयोगकर्ता नाम मुद्रण ओपी वर्णन कर रहा था कि समस्या है। कभी-कभी एक असफल लॉगिन उपयोगकर्ता द्वारा [टैब] कुंजी को गुम करने के कारण होता है और जल्दी से उपयोगकर्ता नाम और पासवर्ड दोनों को उपयोगकर्ता नाम फ़ील्ड में टाइप कर देता है और एंटर करता है। आपके सुझाव से यह सम्भव नहीं है।
BZink

7
@BZink: हाँ यह करता है। यदि उपयोगकर्ता नाम मौजूद है , तो उसे इस तरह लॉग इन करें। यदि उपयोगकर्ता गलती से उपयोगकर्ता नाम पासवर्ड जोड़ देता है, तो परिणामस्वरूप स्ट्रिंग लगभग निश्चित रूप से मान्य उपयोगकर्ता नाम भी नहीं होगी।
मेसन व्हीलर

12

अगर इस तरह का यूजरनेम डेटाबेस में मौजूद है तो बस जाँच क्यों नहीं? यह आपको 2 संभावित परिणामों के साथ छोड़ देगा।

  1. उपयोगकर्ता ने एक सही उपयोगकर्ता नाम दर्ज किया है। आप तभी लॉग कर सकते हैं जो आप अभी लॉग इन करते हैं।

  2. उपयोगकर्ता ने अपना पासवर्ड उपयोगकर्ता नाम फ़ील्ड में दर्ज किया है, इसलिए उपयोगकर्ता नाम अमान्य है। बस एक लॉग प्रविष्टि दर्ज करें, जिसमें कहा गया है कि अज्ञात उपयोगकर्ता द्वारा प्रयास में विफल लॉग था?

और निश्चित रूप से आप एक अतिरिक्त क्षेत्र के लिए लॉग इन कर सकते हैं आईपी, तारीख और क्या नहीं?


3
# 2 में लॉग प्रविष्टि के लिए उपयोगकर्ता नाम का हैश क्यों नहीं जोड़ा गया। यह पासवर्ड छिपाएगा, लेकिन एक ही समय में लॉग को देखने वाले किसी व्यक्ति को यह निर्धारित करने की अनुमति देगा कि क्या एक ही अज्ञात उपयोगकर्ता द्वारा कई प्रयास किए गए हैं।
एमोरी

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

2
@emory, यदि उपयोगकर्ता ने गलती से उपयोगकर्ता नाम के साथ पासवर्ड टाइप किया है, तो स्ट्रिंग के उपयोगकर्ता नाम भाग को निकालने का कोई व्यवहार्य तरीका नहीं है। और कोई बार-बार उपयोगकर्ता नाम फ़ील्ड में पासवर्ड दर्ज कर रहा है, मुझे लगता है कि बहुत संभावना नहीं है। यह एक "एक बार बंद" गलती है जो आप करते हैं। हम में से सबसे अच्छा लगता है, लेकिन मुझे शक है कि किसी को भी यह महसूस किए बिना इसे करने के लिए पर्याप्त बेवकूफ है: D
galdikas

@galdikas उपयोगकर्ता नाम से कुछ भी निकालने की आवश्यकता नहीं है। उदाहरण के लिए, मैं पासवर्ड 'पासवर्ड' के साथ उपयोगकर्ता 'उपयोगकर्ता' हूं। मैं 'userpassword' के साथ लॉगिन करता हूँ और आपके हैश फंक्शन 'userpassword' को 17 में मैप करता है। लॉग "अज्ञात उपयोगकर्ता 17 द्वारा लॉगिन प्रयास विफल" कहेगा।
एमोरी

1
@galdikas संभवत: किसी को बेवकूफ या लगातार ऐसा करने के लिए पर्याप्त नहीं है कि इसे कुछ समय से अधिक समय तक रखा जाए, लेकिन ऐसी स्क्रिप्ट हैं जो बेवकूफ हैं और यह लगातार हजारों बार करने के लिए पर्याप्त हैं। क्या आप अंतर जानना नहीं चाहेंगे?
एमोरी

1

बातें:

  1. क्या आप पता लगा सकते हैं कि ऐसा कब हुआ है, जब किसी ने अपने उपयोगकर्ता नाम को गलत बताया हो? गलत उपयोगकर्ता नाम लॉग करना समर्थन उद्देश्यों के लिए उपयोगी हो सकता है, अर्थात प्रश्न का उत्तर "क्यों मैं" पर लॉग इन नहीं कर सकता "उत्तर के साथ" आपने अपने उपयोगकर्ता नाम को गलत कर दिया है, जो डैश नहीं डॉट होना चाहिए ", या" आपके पास एक अग्रणी कोलोन है फिर व्हॉट्सएप - क्या आपने इसे काट दिया और चिपकाया है "। यदि आपके पास उच्च-मूल्य वाले भुगतान करने वाले उपयोगकर्ता (यानी अभी तक कोई अन्य सोशल नेटवर्किंग साइट) नहीं है, तो आपको इस तरह का समर्थन करना होगा।

  2. किसी को ऐसा करने के लिए क्या उचित कार्रवाई करनी चाहिए? उपयोगकर्ता नाम हैकिंग प्रयासों के संकेतक हो सकते हैं। तथ्य यह है कि उपयोगकर्ता नाम आपकी सूची में दिखाई नहीं देता है इसका मतलब यह नहीं है कि आपको यह जानने की आवश्यकता नहीं है कि यह क्या था। हालाँकि यदि आपको लगता है कि यह एक गंभीर चिंता का विषय है, और आप यह पता लगा सकते हैं कि यह किसका पासवर्ड था, तो ऐसा होने के बाद आपको उपयोगकर्ता को अपना पासवर्ड बदलने की आवश्यकता हो सकती है।

  3. उद्योग अभ्यास क्या है? उद्योग अभ्यास उपयोगकर्ता नाम फ़ील्ड में लॉग इन करना है, लेकिन पासवर्ड फ़ील्ड नहीं। आपको ऐसा करने के लिए निकाल दिए जाने की संभावना नहीं है।

जब तक आपके पास सामान्य विचार नहीं हैं, मैं सुझाव देता हूं कि उद्योग अभ्यास का पालन करें, और उपयोगकर्ता नाम फ़ील्ड पर ध्यान न दें। यदि आपको लगता है कि यह अपर्याप्त है तो सुझाव 2 के रूप में मजबूर पासवर्ड परिवर्तन पर विचार करें।


1

बस सुरक्षित होने के लिए, मेरे वर्तमान ऐप में लॉगिंग लॉगिन या पासवर्ड-रीसेट तरीकों से पारित मापदंडों को संग्रहीत नहीं करता है। लॉग कॉल में एक वैकल्पिक पैरामीटर होता है जो इसे नियंत्रित करता है, जो सही होने पर, संग्रहीत पैरामीटर ऑब्जेक्ट को बदल देता है [Redacted]। ज़रूर, इसलिए मुझे थोड़ा डेटा याद आता है, लेकिन मेरे पास उनके आईपी पते हैं, और मैं नहीं चाहता कि कुछ ऐसा हो जो सादा में संवेदनशील हो।

यदि आप वास्तव में इस तरह की चीज़ को लॉग इन करना चाहते हैं, तो मेरा सुझाव है कि लॉगिन प्रयास को लॉग करते समय, आप उन उपयोगकर्ताओं के लिए डेटाबेस की जांच करते हैं, जिनका नाम उपयोगकर्ता नाम के साथ मेल खाता है, और आपके पास मेल होने पर ही इसे संग्रहीत करें। अन्यथा, आप इसे "अज्ञात उपयोगकर्ता" के रूप में संग्रहीत करते हैं। आप फैंसी प्राप्त कर सकते हैं, जाँच कर सकते हैं कि क्या इस मूल्य में वह है या जो कुछ भी है, लेकिन हमेशा जोखिम रहता है कि आपको [उपयोगकर्ता] [पासवर्ड] और [यूजरपास] [तलवार] जैसे संयोजन मिलते हैं, जिस स्थिति में आप आईपी के खिलाफ जांच कर सकते हैं और घटा सकते हैं आपने अनजाने में स्पष्ट रूप से किसी के पासवर्ड की शुरुआत संग्रहीत की है। आप इसे असंभाव्य-संभव-लेकिन [उपयोगकर्ता] [पासवर्ड] और [यूजरपासवर्ड] [??] तक बढ़ा सकते हैं, जिस स्थिति में आप "यूजरपास द्वारा असफल लॉगिन" देख सकते हैं और उसके बाद "उपयोगकर्ता द्वारा सफल लॉगिन" और सभी को घटा सकते हैं।उपयोगकर्ता का पासवर्ड। आम तौर पर सुरक्षित होने के लिए, मैं कहूंगा कि जब तक लॉगिन सफल नहीं होगा, तब तक उपयोगकर्ता नाम लॉग न करें।

जोड़ने के लिए संपादित करें:

ज्यादातर लोगों के तर्क विफल लॉगिन प्रयासों के लिए उपयोगकर्ता नाम लॉग इन करने के लिए पोस्ट कर रहे हैं, मेरी राय में, अन्य तरीकों के माध्यम से बेहतर तरीके से नियंत्रित किया जाता है।

उदाहरण के लिए, यह कहा गया है कि जब कोई ग्राहक पूछता है कि "मैं लॉग ऑन क्यों नहीं कर सकता?", लॉग किए गए उपयोगकर्ता नाम आपको टाइपो को इंगित करने की अनुमति देगा। यह सच है, लेकिन यह पासवर्ड को पकड़ने के जोखिम के लायक भी नहीं है; मैं ऐसा करने के बजाय उपयोगकर्ता को विफलता पर लॉगिन फ़ॉर्म पर वापस भेज देगा, उपयोगकर्ता नाम फ़ील्ड पर प्रकाश डालूँगा और जो कुछ भी उन्होंने टाइप किया है, उसके साथ इसे फिर से खोलना ताकि वे अपने लिए देख सकें।

एक और तर्क यह था कि यह आपको हैकिंग प्रयासों की पहचान करने देता है; एक उपयोगकर्ता नाम के खिलाफ विफलताओं की एक स्ट्रिंग अच्छी तरह से एक पासवर्ड को बाध्य करने का प्रयास हो सकता है। उपयोगकर्ता तालिका पर "BadLogins" कॉलम होने से मैं ऐसा करूँगा, जो हर बार बढ़ा हुआ होता है, इस उपयोगकर्ता से मेल खाने वाले उपयोगकर्ता नाम के साथ लॉगिन विफल रहता है, और उपयोगकर्ता को बताने के बाद एक सफल लॉगिन पर शून्य पर रीसेट हो जाता है। x आपके अंतिम लॉगिन के बाद से असफल लॉगिन प्रयास "और उन्हें सलाह देने के लिए कि यदि उन्हें नहीं लगता कि वे प्रयास उनसे थे। यदि आप वास्तव में पूरी तरह से होना चाहते हैं, तो आपके पास एक और कॉलम हो सकता है जो सफल लॉगिन के बाद भी BadLogins कॉलम के अंतिम मूल्य को संग्रहीत करता है, और / या एक स्तंभ जो इस कॉलम के उच्चतम मूल्य को संग्रहीत करता है, और / या एक स्तंभ इस खाते के पास कभी भी फेल किए गए लॉगिन की कुल संख्या को संग्रहीत करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.