इनपुट प्रकार = पासवर्ड, ब्राउज़र को पासवर्ड याद न रखने दें


101

मुझे याद है कि एक तरीका <input type="password" />ऐसा है कि ब्राउज़र उपयोगकर्ता को पासवर्ड बचाने के लिए संकेत नहीं देगा । लेकिन मैं एक रिक्त आकर्षित कर रहा हूं। क्या कोई HTML विशेषता या कोई जावास्क्रिप्ट चाल है जो ऐसा करेगी?


जवाबों:


123

प्रयोग करके देखें autocomplete="off"। यकीन नहीं होता कि हर ब्राउज़र इसे सपोर्ट करता है, हालाँकि। MSDN डॉक्स यहाँ

EDIT : नोट: अधिकांश ब्राउज़रों ने इस विशेषता के लिए समर्थन छोड़ दिया है। देखें सभी आधुनिक ब्राउज़रों के साथ "बंद" संगत है स्वत: पूर्ण =?

यह यकीनन कुछ ऐसा है जिसे वेब साइट डिजाइनर के बजाय उपयोगकर्ता तक छोड़ दिया जाना चाहिए।


2
आप HTTPS और HTTP हेडर या मेटा टैग कैशिंग के माध्यम से पेज को डिलीवर भी कर सकते हैं। इस तरह, पासवर्ड भी संग्रहीत नहीं किया जाएगा (कम से कम इंटरनेट एक्सप्लोरर में)।
डॉकमैन

मान्यकरण के संबंध में, HTML5
अटकल

9
भविष्य के पाठकों के लिए ध्यान दें: सभी प्रमुख ब्राउज़र विशेषता की अनदेखी कर रहे हैं। (देखें stackoverflow.com/a/21348793/37706 )
rdans

@RyanDansie इशारा करते हैं कि बाहर के लिए धन्यवाद। मैंने जवाब अपडेट कर दिया है। पुराना उत्तर है ... पुराना।
tvanfosson

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

61

<input type="password" autocomplete="off" />

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

पासवर्ड पहले से ही एमआरयू में संग्रहीत नहीं हैं, और सही ढंग से कॉन्फ़िगर की गई सार्वजनिक मशीनें उपयोगकर्ता नाम भी नहीं बचाएंगी।


23
+1 के लिए "अपने उपयोगकर्ताओं को नाराज न करें"। इस तरह की सुविधा वास्तव में यही है। कैशिंग बंद करने के लिए मजबूर करने वाली साइट्स की तरह ही बैक बटन फॉर्म को क्लियर करता है। कष्टप्रद चिड़चिड़ाहट।
cletus

6
+1 मैं पूरी तरह सहमत हूं। इसके व्यवस्थापक के लिए ग्राहक प्रोफ़ाइल पृष्ठ संपादित करें जहां आप केवल एक पासवर्ड दर्ज करते हैं यदि आप इसे बदलने का इरादा रखते हैं। इस तरह से प्रशासक ग्राहक की जानकारी को संपादित करने के लिए हर बार पासवर्ड नहीं बदलते हैं।
दावग्रेसिया

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

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

3
मैं इसे एक बार उपयोग पासवर्ड के लिए उपयोग कर रहा हूं। जैसा कि jrb ने कहा है, यदि ब्राउज़र इसे संग्रहीत करता है तो यह बहुत कष्टप्रद होगा।
दान

12

मैंने दूसरे तरीके से हल किया। आप यह कोशिश कर सकते हैं।

<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){                                               
    setTimeout(function(){
        $("input#passfld").attr("type","password");
    },10);
});


// or in pure javascript
 window.onload=function(){                                              
    setTimeout(function(){  
        document.getElementById('passfld').type = 'password';
    },10);
  }   
</script>

#दूसरा रास्ता

 <script type="text/javascript">    
 function setAutoCompleteOFF(tm){
    if(typeof tm =="undefined"){tm=10;}
    try{
    var inputs=$(".auto-complete-off,input[autocomplete=off]"); 
    setTimeout(function(){
        inputs.each(function(){     
            var old_value=$(this).attr("value");            
            var thisobj=$(this);            
            setTimeout(function(){  
                thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
                thisobj.val(old_value);
            },tm);
         });
     },tm); 
    }catch(e){}
  }
 $(function(){                                              
        setAutoCompleteOFF();
    });
</script>

// आपको विशेषता स्वत: पूर्ण = "बंद" जोड़ने की आवश्यकता है या आप वर्ग जोड़ सकते हैं। इनपुट बॉक्स में ऑटो-पूर्ण-बंद करें और आनंद लें

उदाहरण:

  <input id="passfld" type="password" autocomplete="off" />
    OR
  <input id="passfld" class="auto-complete-off" type="password"  />

4
यह स्वत: पूर्णता को रोकने के बजाय पासवर्ड को संग्रहीत करने के लिए ब्राउज़र को रोकता है जो मेरे परिदृश्य में एक बेहतर समाधान है।
पाऊ फ्रैकेस

धन्यवाद, मेरे लिए नवीनतम क्रोम पर काम किया कृपया ध्यान दें: एक आंतरिक प्रणाली पर उपयोग किया जाता है जहां केवल क्रोम की अनुमति है, उत्पादन साइट में उपयोग करने पर अधिक परीक्षण करें।
इज़ियन

@ एंटोनीविश, मुझे उम्मीद है कि फ़ायरफ़ॉक्स 40 में मेरा अंतिम समाधान काम होगा।
सरवर हसन

7

मैंने निम्नलिखित की कोशिश की और ऐसा लगता है कि किसी भी ब्राउज़र के लिए काम करता है:

<input id="passfld" type="text" autocomplete="off" />

<script type="text/javascript">
    $(function(){  
        var passElem = $("input#passfld");
        passElem.focus(function() { 
            passElem.prop("type", "password");                                             
        });
    });
</script>

यह तरीका टाइमआउट तकनीकों का उपयोग करने की तुलना में बहुत अधिक सुरक्षित है, क्योंकि यह गारंटी देता है कि उपयोगकर्ता द्वारा ध्यान केंद्रित करने पर इनपुट फ़ील्ड को पासवर्ड मिलेगा।


5

सुरक्षा मुद्दों के लिए, यहाँ एक सुरक्षा सलाहकार आपको पूरे क्षेत्र के मुद्दे पर बताएगा (यह एक वास्तविक स्वतंत्र सुरक्षा ऑडिट से है):

HTML स्वतः पूर्ण सक्षम - HTML प्रपत्रों में पासवर्ड फ़ील्ड स्वत: पूर्ण सक्षम हैं। अधिकांश ब्राउज़रों को HTML फॉर्म में दर्ज किए गए उपयोगकर्ता क्रेडेंशियल्स को याद रखने की सुविधा है।

रिलेटिव रिस्क: लो

प्रभावित सिस्टम / उपकरण: o https: // * ** * *** /

मैं यह भी मानता हूं कि यह किसी भी क्षेत्र को कवर करना चाहिए जिसमें वास्तव में निजी डेटा शामिल है। मुझे लगता है कि किसी व्यक्ति को हमेशा अपने क्रेडिट कार्ड की जानकारी, सीवीसी कोड, पासवर्ड, उपयोगकर्ता नाम, आदि लिखने के लिए मजबूर करना ठीक है, जब भी उस साइट पर किसी भी चीज की पहुंच हो, जिसे सुरक्षित रखा जाना चाहिए [सार्वभौमिक रूप से या कानूनी अनुपालन आवश्यकताओं द्वारा]। उदाहरण के लिए: खरीद फॉर्म, बैंक / क्रेडिट साइट, टैक्स साइट, मेडिकल डेटा, फेडरल, न्यूक्लियर आदि - कि स्टैक ओवरफ्लो या फेसबुक जैसी साइटें।

अन्य प्रकार की साइटें - उदाहरण के लिए टाइमस्टार ऑनलाइन इन और वर्क आउट से घबराने के लिए - यह बेवकूफी है, क्योंकि मैं हमेशा काम में एक ही पीसी / खाते का उपयोग करता हूं, कि मैं उस साइट पर क्रेडेंशियल्स नहीं बचा सकता हूं - अजीब तरह से मैं अपने एंड्रॉइड पर कर सकता हूं लेकिन एक iPad पर नहीं। यहां तक ​​कि साझा किए गए पीसी यह बहुत बुरा नहीं होगा क्योंकि किसी और के लिए घड़ी में / बाहर वास्तव में कुछ भी नहीं करता है लेकिन आपके पर्यवेक्षक को परेशान करता है। (उन्हें गलत पंचों को हटाने और हटाने के लिए जाना है - बस सार्वजनिक पीसी पर सहेजने के लिए नहीं चुनें)।


5
सिर्फ एक कारण के लिए यहाँ एक टिप्पणी जोड़कर आप एक पासवर्ड नहीं बचाना चाहेंगे। मैं उपयोगकर्ता खातों के साथ एक वेबसाइट रखता हूं जहां प्रवेश उपयोगकर्ता के पासवर्ड को बदल सकता है। ग्राहक वर्तमान में इस बात से अनभिज्ञ है कि Chrome प्रत्येक उपयोगकर्ता के लिए हर बार "परिवर्तन पासवर्ड" फ़ॉर्म में दर्ज किए गए पासवर्ड को सहेजने की पेशकश करता है , क्योंकि यह संपादित उपयोगकर्ता फ़ॉर्म को लॉगिन फ़ॉर्म के रूप में गलत बताता है। सरल निर्देश देना जैसे "बस क्लिक करें कभी याद रखें पासवर्ड" उनके परे हैं, जाहिरा तौर पर।
charredUtensil

5
<input type="password" placeholder="Enter New Password" autocomplete="new-password">

हेयर यू गो।


2
यह तरीका है, वहाँ बहुत सारे वर्कअराउंड हैं, और यह उतना ही सरल है, जितना कि फ़ायरफ़ॉक्स के नवीनतम संस्करण (v67) और क्रोम (75) के साथ परीक्षण किया गया है।
मरिआनो रूइज़

Chrome 80 फ़ॉर्म सबमिट करने के बाद भी पासवर्ड याद रखने की पेशकश करेगा।
बॉके

4

यहाँ सबसे अच्छा जवाब है, और सबसे आसान है! अपने inputक्षेत्र के सामने एक अतिरिक्त पासवर्ड फ़ील्ड रखें और सेट करें display:none, ताकि जब ब्राउज़र इसे भरता है, तो यह ऐसा करता है inputजिसमें आपको परवाह नहीं है।

इसे बदलो:

<input type="password" name="password" size="25" class="input" id="password" value="">

इसके लिए:

<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">

वास्तव में, यह काम करता है यदि 2 पासवर्ड फ़ील्ड फॉर्म में हैं, लेकिन नया ब्राउज़र दिखाई नहीं देता है और सक्षम नहीं होने पर 2 पासवर्ड को अनदेखा करता है;
सेड्रिक साइमन

1
का उपयोग करना display:noneमेरे लिए काम नहीं करता (क्रोम 61 OSX), लेकिन यह करता है:<input type="password" style="position: absolute; top: -1000px;">
जॉन Hascall

2

इस उत्तर को भी पढ़ें जहां वह इस आसान समाधान का उपयोग कर रहा है जो हर जगह काम करता है (सफारी मोबाइल के लिए फिक्स भी देखें):

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>

1

आप JQuery का उपयोग कर सकते हैं, आईडी द्वारा आइटम का चयन करें:

$("input#Password").attr("autocomplete","off");

या प्रकार से आइटम का चयन करें:

$("input[type='password']").attr("autocomplete","off");

या यह भी:

आप शुद्ध जावास्क्रिप्ट का उपयोग कर सकते हैं:

document.getElementById('Password').autocomplete = 'off';


1

स्वतः पूर्ण के रूप में देखना = बंद हो जाना, मैं हाल ही के समाधान का सुझाव देता हूं।

अपने पासवर्ड फ़ील्ड को एक सामान्य टेक्स्ट फ़ील्ड पर सेट करें, और सीएसएस का उपयोग करके अपने इनपुट को "डिस्क" के साथ मास्क करें। कोड इस तरह दिखना चाहिए:

<input type="text" class="myPassword" /> 

input .myPassword{
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

कृपया ध्यान दें कि यह फ़ायरफ़ॉक्स ब्राउज़र पर पूरी तरह से काम नहीं कर सकता है, और अतिरिक्त चलने की आवश्यकता है। इसके बारे में यहाँ और अधिक पढ़ें: https://stackoverflow.com/a/49304708/5477548

इस लिंक से समाधान लिया गया था , लेकिन एसओ "नो-हॉटलिंक" के अनुपालन के लिए मैंने इसे यहाँ संक्षेप में प्रस्तुत किया।


0

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

इससे पहले:

<form action="..."><input type="password"/></form>

उपरांत:

<input type="password"/>

1
वैसे, यह एक ऐसी ट्रिक है जिसका आपको शायद इस्तेमाल नहीं करना चाहिए। फ़ॉर्म टैग का उपयोग नहीं करने से, आपका कोड डिफ़ॉल्ट रूप से HTML4 बन जाता है और आपके उपयोगकर्ताओं के खातों को मान्य करना कठिन हो जाता है।
कैनाइनाइड

0

मैंने फ़ायरफ़ॉक्स और क्रोम पर निम्नलिखित काम किए हैं।

<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>

ये सभी फॉर्म सेक्शन के भीतर हैं। "व्यक्ति" और "mypswd" वही हैं जो आप चाहते हैं, लेकिन ब्राउज़र एक बार "userid" और "passwd" को बचाएगा, और फिर से कभी नहीं बदलेगा। आप "व्यक्ति" क्षेत्र को समाप्त कर सकते हैं यदि आपको वास्तव में इसकी आवश्यकता नहीं है। उस मामले में, आप सभी चाहते हैं कि "mypswd" फ़ील्ड है, जो आपके वेब-पेज के उपयोगकर्ता को किसी तरह से बदल सकता है।


0

जिस तरह से मैं फ़ायरफ़ॉक्स, एज, और इंटरनेट एक्सप्लोरर को स्वतः पूर्ण करने के लिए प्राप्त कर सकता हूं, वह मेरे फ़ॉर्म स्टेटमेंट में स्वत: पूर्ण = "गलत" जोड़ने के लिए है:

  <form action="postingpage.php" autocomplete="false" method="post">

और मुझे अपने फ़ॉर्म इनपुट में स्वत: पूर्ण = "बंद" जोड़ना होगा और प्रकार को पाठ में बदलना होगा:

     <input type="text" autocomplete="off">

ऐसा लगता है कि इस HTML कोड को ब्राउज़र के साथ मानकीकृत करने की आवश्यकता है। प्रपत्र प्रकार = पासवर्ड को संशोधित किया जाना चाहिए ताकि यह ब्राउज़र सेटिंग्स को ओवरराइड करे। मेरे पास एकमात्र मुद्दा यह है कि मैंने अपना इनपुट मास्किंग खो दिया है। लेकिन चमकदार तरफ कष्टप्रद "यह साइट सुरक्षित नहीं है" फ़ायरफ़ॉक्स में दिखाई नहीं दे रहा है।

मेरे लिए, यह एक बड़ी बात नहीं है क्योंकि उपयोगकर्ता पहले से ही प्रमाणित है और इसका परिवर्तन उपयोगकर्ता नाम और पासवर्ड पासवर्ड है


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

https ट्रैफ़िक को एन्क्रिप्ट करता है। यदि आप इसे इंटरनेट एप्लिकेशन के हिस्से के रूप में उपयोग कर रहे हैं जो सार्वजनिक है, तो आप यह वैसे भी करते हैं। पोस्ट विधि बुकमार्किंग को रोकता है, और HTML के अंदर php कोड के मल्टी इफ्रेम्स URL इंजेक्शन को रोकता है। तकनीकी रूप से, आपको अपना पूरा मार्ग डालना चाहिए था। यदि आप तैनात हैं तो मैं $ _SESSION चर को लोड करने की सलाह दूंगा जिसमें मूल URL के साथ $ _SERVER चर को देखने के बजाय पाठ में लिखा गया है। $ _SERVER ['HTTP_HOST'], और $ _SERVER ['PHP_SELF'] का उपयोग केवल गैर-सार्वजनिक वातावरण में किया जाना चाहिए क्योंकि दोनों में कई कारनामे हैं।
डॉटेचनो

Btw, मेरा उदाहरण बंद सिस्टम के लिए है जो किसी भी तरह से इंटरनेट से जुड़ा नहीं है
drtechno

"जावा ऑनक्लिक" के साथ निष्पादित की गई एक सांकेतिक योजना का उपयोग करने पर किसी ने छुआ नहीं है, फिर एन्क्रिप्शन दिनचर्या के बाद फॉर्म जमा करें।
१te
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.