ब्राउज़र को 'पासवर्ड सहेजें' कार्यक्षमता अक्षम करें


423

सरकारी स्वास्थ्य सेवा के लिए काम करने वालों में से एक PHI (संरक्षित स्वास्थ्य सूचना) से निपटने के लिए सभी व्यामोह से निपटने के लिए है। मुझे गलत मत समझो, मैं लोगों की व्यक्तिगत जानकारी (स्वास्थ्य, वित्तीय, सर्फिंग की आदतों, आदि) की सुरक्षा के लिए हर संभव प्रयास कर रहा हूं, लेकिन कभी-कभी लोग बहुत अधिक उछल-कूद करते हैं।

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

प्रश्न : क्या किसी साइट के लिए ब्राउज़र को पासवर्ड याद रखने की पेशकश नहीं करने का तरीका है? मैं लंबे समय से वेब विकास के आसपास रहा हूं, लेकिन यह नहीं जानता कि मैं इससे पहले आया हूं।

किसी भी मदद की सराहना की है।


6
आपको एक ग्रिसेमिक-स्क्रिप्ट प्रदान करना चाहिए ताकि लोग इसे फिर से सक्षम कर सकें। मुझे नहीं लगता कि उपयोगकर्ताओं को हर बार पासवर्ड टाइप करने के लिए मजबूर किया जाना चाहिए ...
ThiefMaster

14
प्रश्न उपयोगी और स्पष्ट होने के लिए एक उत्थान के योग्य है। दूसरी ओर मैं नहीं चाहता कि लोग इस "समस्या" का हल खोजें।
इयान बॉयड

11
यह हमेशा एक "समस्या" नहीं होती है। मैं यहां इसलिए आया क्योंकि फ़ायरफ़ॉक्स एक ऐसे फ़ॉर्म के लिए पासवर्ड सहेजने का संकेत देता है जिसमें WiFi / SSID पासवर्ड होता है, न कि लॉगिन यूज़रनेम / पासवर्ड फ़ॉर्म। यह बहुत कष्टप्रद है और मैं इसे रोकना चाहता हूं।
srd

1
यदि जानकारी महत्वपूर्ण है, तो इसे केवल एक पासवर्ड से अधिक संरक्षित किया जाना चाहिए।
सैम वाटकिंस

यह काम करने का एक तरीका है <form> का उपयोग न करना। यदि आप डेटा (XHR) भेजने के लिए जावास्क्रिप्ट का उपयोग कर रहे हैं, तो आपको इसकी आवश्यकता नहीं है। मैं एक ऐसी प्रणाली को निष्क्रिय करना चाहता था जो "वन-टाइम-पासवर्ड" प्रमाणीकरण का उपयोग करती है (इसे स्टोर करने का कोई कारण नहीं)। उपयोगकर्ता / पास प्रमाणीकरण के लिए मैं उस सुविधा को अक्षम करने की अनुशंसा नहीं करूंगा।
लेप

जवाबों:


322

मुझे यकीन नहीं है कि यह सभी ब्राउज़रों में काम करेगा लेकिन आपको फ़ॉर्म पर स्वत: पूर्ण = "बंद" सेट करने का प्रयास करना चाहिए।

<form id="loginForm" action="login.cgi" method="post" autocomplete="off">

फ़ॉर्म और पासवर्ड संग्रहण संकेतों को अक्षम करने का सबसे आसान और सरल तरीका है फॉर्म डेटा को सत्र इतिहास में कैश्ड होने से रोकने के लिए, "ऑफ" मान के साथ स्वत: पूर्ण तत्व तत्व विशेषता का उपयोग करना है।

से http://developer.mozilla.org/En/How_to_Turn_Off_Form_Autocompletion

कुछ मामूली शोध से पता चलता है कि यह IE में काम करता है, लेकिन मैं कोई गारंटी नहीं छोड़ूंगा;)

@ जोसेफ : यदि वास्तविक मार्कअप के साथ एक्सएचटीएमएल सत्यापन पास करना एक सख्त आवश्यकता है (पता नहीं ऐसा क्यों होता है) तो आप सैद्धांतिक रूप से इस विशेषता को जावास्क्रिप्ट के साथ जोड़ सकते हैं लेकिन फिर js अक्षम वाले उपयोगकर्ता (शायद आपके उपयोगकर्ताबेस की उपेक्षा राशि) या शून्य यदि आपकी साइट को js की आवश्यकता है) तब भी उनके पासवर्ड सहेजे जाएंगे।

JQuery के साथ उदाहरण:

$('#loginForm').attr('autocomplete', 'off');

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

11
बस FYI करें, Microsoft ने तय किया कि इंटरनेट एक्सप्लोरर 11 अब खेतों के autocomplete="off"लिए सम्मान नहीं करेगा input type="password"msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx
JW Lim

6
जैसे @JWLim ने IE 11 को पासवर्ड सेव करने की कार्यक्षमता को अक्षम करने के लिए ड्रॉपिंग सपोर्ट का उल्लेख किया है, वैसे ही फ़ायरफ़ॉक्स है। Bugzilla.mozilla.org/show_bug.cgi?id=956906
ग्रेगरी कॉस्मो हॉन

3
फ़ायरफ़ॉक्स (दुर्भाग्य से) माइक्रोसॉफ्ट के नेतृत्व का अनुसरण किया और साथ ही स्वत: पूर्ण समर्थन को "हटा" दिया। विवरण के लिए निम्नलिखित मुद्दे पर चर्चा में टिप्पणी 100 देखें: bugzilla.mozilla.org/show_bug.cgi?id=956906
बिट

8
अब, फ़ायरफ़ॉक्स के लिए काम नहीं कर रहे हैं 38+ mozilla.org/en-US/firefox/38.0/releasenotes
इल्लुमिनेटर

44

के अतिरिक्त

autocomplete="off"

उपयोग

readonly onfocus="this.removeAttribute('readonly');"

इनपुट के लिए आप उन्हें प्रपत्र डेटा (याद नहीं करना चाहती है कि username, passwordजैसा कि नीचे दिखाया, आदि):

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

प्रमुख ब्राउज़र के नवीनतम संस्करण पर परीक्षण किया गया यानी Google Chrome, Mozilla Firefox, Microsoft Edge, आदि और एक आकर्षण की तरह काम करता है। उम्मीद है की यह मदद करेगा।


2
@ मूरत यिलदेज़: मुझे इसे लागू करना है और मैंने आपके कोड का पालन किया। यह मेरे लिए सभी ब्राउज़रों में ठीक काम कर रहा है। धन्यवाद !
श्री

1
@ श्री मुझे खुशी है कि यह आपके लिए उपयोगी था :)
मूरत येल्देज़

3
बस मोज़िला फ़ायरफ़ॉक्स 52.0 , गूगल क्रोम 57.0 , माइक्रोसॉफ्ट एज 38.1 और एक आकर्षण की तरह काम कर रहा है! ..
मरात येल्ड्ज़

1
सफारी मोबाइल में कोई त्रुटि हो सकती है क्योंकि यह उत्तर इसे stackoverflow.com/questions/2530/…
Ferie

1
विंडोज फ़ायरफ़ॉक्स 57.0.2 (64-बिट) अभी भी पासवर्ड को बचाने के लिए सुझाव दे रहा है क्योंकि मैंने इसे लागू किया था।
पानू हमारो

37

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

इस आवश्यकता के साथ, मानक autocomplete="off"विधि सभी ब्राउज़रों में काम नहीं करती है, क्योंकि पासवर्ड को पहले लॉगिन से बचाया जा सकता है। किसी सहकर्मी ने पासवर्ड फ़ील्ड को बदलने के लिए एक समाधान ढूंढा जब इसे नए पासवर्ड फ़ील्ड के साथ केंद्रित किया गया था, और फिर नए पासवर्ड फ़ील्ड पर ध्यान केंद्रित करें (फिर उसी इवेंट हैंडलर को हुक करें)। यह काम किया (इसके अलावा IE6 में एक अनंत लूप का कारण बना)। शायद उसके आसपास एक रास्ता था, लेकिन यह मुझे एक माइग्रेन पैदा कर रहा था।

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

यहाँ कुछ नमूना कोड है, कुछ jQuery के साथ इसे काम करने के लिए:

<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>

<form id="theForm" action="/your/login" method="post">
  <input type="hidden" id="hiddenUsername" name="username"/>
  <input type="hidden" id="hiddenPassword" name="password"/>
  <input type="submit" value="Login"/>
</form>

<script type="text/javascript" language="JavaScript">
  $("#theForm").submit(function() {
    $("#hiddenUsername").val($("#username").val());
    $("#hiddenPassword").val($("#password").val());
  });
  $("#username,#password").keypress(function(e) {
    if (e.which == 13) {
      $("#theForm").submit();
    }
  });
</script>

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

3
मुझे आपका समाधान पसंद है और मेरी साइट पर एक समान लागू किया गया है, यह हास्यास्पद है कि कैसे आज, ब्राउज़र इसे हल करने का एक सरल तरीका प्रदान नहीं करते हैं।
एगलेसएसेंस

निश्चित नहीं है कि यह इसलिए है क्योंकि मैं jquery 1.6 का उपयोग कर रहा हूं, लेकिन उपरोक्त jquery ने केवल एक $ (दस्तावेज़) के अंदर लपेटने के बाद काम किया है। (फ़ंक्शन () {});
rgbflawed

केवल सही आत्माकरण यह है क्योंकि कुछ ब्राउज़रों ने स्वत: पूर्ण = "बंद" स्वीकार नहीं किया है!
अबादिस

1
मैं सिर्फ क्रोम, ओपेरा और इंटरनेट एक्सप्लोरर पर इस विधि की कोशिश की है और यह काम करने लगता है, लेकिन यह फ़ायरफ़ॉक्स के साथ अप्रत्याशित रूप से काम नहीं करता है
chenks

29

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

प्लंक - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview

HTML:

<form method="post" action="yoururl">
      <div class="hidden">
        <input type="password"/>
      </div>
      <input type="text" name="username" placeholder="username"/>
      <input type="password" name="password" placeholder="password"/>
    </form>

सीएसएस:

.hidden {display:none;}

1
इस तरह से एक फायदा बनाम जो छिपे हुए आदानों का उपयोग करते हैं, वह यह है कि इस तरह से एक पासवर्ड कभी भी एक
प्लेनटेक्स्ट

@ WhyAto8 क्रोम 47.0.2526.111 में मेरे लिए यह काम नहीं कर रहा था ... इसे बनाने के लिए ट्रिक को छिपे हुए div में एक और फील्ड टेक्स्ट जोड़ना था। ब्राउज़र पासवर्ड को बचाने के लिए कहता है लेकिन यह कहता है कि "क्या आप इस crendetials को बचाने के लिए सुनिश्चित हैं?" और फिर यह एक खाली उपयोगकर्ता नाम और एक खाली पासवर्ड दिखाता है। इसने काम किया है।
डेविड बेलांगेर

1
WhyAto8 के समाधान ने @David Bélanger की टिप्पणी के साथ मिलकर मेरे लिए काम किया (अन्य समाधानों में से कोई भी नहीं किया)। मुझे यह भी उल्लेख करना चाहिए कि मैंने दो खाली छिपे हुए क्षेत्रों को पहले से जोड़ दिया है जो वास्तव में डेटा प्रविष्टि के लिए उपयोग किए जाते हैं, और डुप्लिकेट किए गए (छिपे हुए) फ़ील्ड में संबंधित नाम समान थे। इस तरह क्रोम (48.0.2564.103) ने यह भी नहीं पूछा कि क्या कोई पासवर्ड सेव किया जाना चाहिए।
वदिम

इसका कोई संयोजन Chrome 48.0.2564.116 पर काम नहीं कर रहा है। यहां तक ​​कि डेविडबेलेंजर की टिप्पणी के साथ, क्रोम पॉपअप आपको पासवर्ड बचाने के लिए कह रहा है यदि आप ठीक क्लिक करते हैं तो भी पासवर्ड को कैश करता है
क्रिस

शानदार जवाब .. बस आप कृपया मुझे बताएं कि आपने यह क्यों कहा "सुनिश्चित करें कि यह div वास्तविक पासवर्ड इनपुट से पहले है" ? मैंने उस वास्तविक पासवर्ड इनपुट के बाद उस div को रखा और अभी भी यह काम करता है .. तो आपने उसका उल्लेख क्यों किया?
मार्टिन एजे

16

आप प्रत्येक शो पर पासवर्ड फ़ील्ड के लिए उपयोग किए गए नाम को यादृच्छिक रूप से मिलान करके ब्राउज़र को रोक सकते हैं। तब ब्राउज़र उसी url के लिए एक पासवर्ड देखता है, लेकिन यह सुनिश्चित नहीं किया जा सकता है कि यह समान पासवर्ड है । शायद यह कुछ और नियंत्रित कर रहा है।

अद्यतन: ध्यान दें कि यह स्वत: पूर्ण या अन्य युक्तियों का उपयोग करने के अलावा होना चाहिए , न कि उनके लिए प्रतिस्थापन, दूसरों द्वारा इंगित कारणों के लिए।

यह भी ध्यान दें कि यह केवल ब्राउज़र को पासवर्ड पूरा करने से रोकेगा । यह ब्राउज़र द्वारा उपयोग किए जाने वाले सुरक्षा के मनमाने स्तर पर पासवर्ड को संग्रहीत करने से नहीं रोकेगा ।


5
[@Joel] (# 32409) कि स्वतः भर जाती, लेकिन वह तो इस के लिए पासवर्ड को बचाने के लिए पूछ रहा से रोका जा सके ब्राउज़र होने से रोक सकती हैं प्रपत्र चाहिए नया रूप?
जोसेफ पेकैरो

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

1
नोड्स @ जैसन, पासवर्ड फ़ील्ड को एक नाम के लिए एक नया UUID देते हुए हर बार ब्राउज़र को भरने के प्रयासों को हराने के लिए कुछ भी नहीं किया।
एफपी फ्रीली

14

पासवर्ड पर एकमात्र निर्भरता से बचने के लिए वास्तविक दो-कारक प्रमाणीकरण का उपयोग करें, जो उपयोगकर्ता के ब्राउज़र कैश की तुलना में कई और जगहों पर संग्रहीत किया जा सकता है।


2
btw यह प्रमाणीकरण है प्रमाणीकरण नहीं
जोनाथन।

26
@ जोनाथन दया, मैं प्रमाणीकरण
इयान बॉयड

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

13

सबसे अच्छा तरीका autocomplete="off"टैग विशेषता का उपयोग करना है, लेकिन जब आप टैब के साथ फ़ील्ड स्विच करते हैं तो फ़ायरफ़ॉक्स इसे ठीक से नहीं मानता है।

जिस तरह से आप इसे रोक सकते हैं वह है एक नकली छिपे हुए पासवर्ड फ़ील्ड को जोड़ना जो ब्राउज़र को वहां पासवर्ड पॉप्युलेट करने के लिए ट्रिक्स करता है।

<input type="text" id="username" name="username"/>
<input type="password" id="prevent_autofill" autocomplete="off" style="display:none" tabindex="-1" />
<input type="password" id="password" autocomplete="off" name="password"/>

यह एक बदसूरत हैक है, क्योंकि आप ब्राउज़र व्यवहार को बदलते हैं, जिसे बुरा व्यवहार माना जाना चाहिए। इसका उपयोग केवल तभी करें जब आपको वास्तव में इसकी आवश्यकता हो।

नोट: यह प्रभावी रूप से पासवर्ड ऑटोफिल को रोक देगा, क्योंकि FF #prevent_autofill( " खाली है ") के मूल्य को "सहेजेगा" और वहां किसी भी सहेजे गए पासवर्ड को पॉप्युलेट करने की कोशिश करेगा, क्योंकि यह हमेशा type="password"संबंधित "उपयोगकर्ता नाम" के बाद DOM में मिलने वाले पहले इनपुट का उपयोग करता है इनपुट।


ब्राउज़र को पासवर्ड में भरने से रोकने की क्या बात है लेकिन इसे स्टोर करने की अनुमति देता है? यह केवल उपयोगकर्ता को यह सोचकर चकरा देता है कि उनका पासवर्ड संग्रहीत नहीं है जबकि वे वास्तव में असुरक्षित हैं।
कोडइन्चौस जूल

इस तरह यह वास्तव में आपके पासवर्ड को स्टोर नहीं करेगा, क्योंकि आप दूसरे बॉक्स में टाइप करते हैं, जिसे FF द्वारा अनदेखा किया जाता है। इसके बजाय यह एक खाली स्ट्रिंग संग्रहीत करेगा।
वेन्यूमस जूल

@CodesInChaos IMHO आपको अपने पतन पर पुनर्विचार करना चाहिए, क्योंकि आपकी चिंता वैध नहीं है
venimus

12

मैंने परीक्षण किया है कि सभी प्रमुख ब्राउज़रों में फ़ॉर्म टैग में स्वतः पूर्ण = "बंद" जोड़ना। वास्तव में, अमेरिका में अब तक IE8 का उपयोग करने वाले अधिकांश लोग हैं।

  1. IE8, IE9, IE10, फ़ायरफ़ॉक्स, सफारी ठीक काम कर रहे हैं।

    ब्राउज़र "पासवर्ड बचाने के लिए नहीं पूछ रहा है"। इसके अलावा, पहले से सहेजा गया उपयोगकर्ता नाम और पासवर्ड आबादी नहीं है।

  2. Chrome और IE 11 स्वत: पूर्ण = "बंद" सुविधा का समर्थन नहीं करते
  3. FF स्वत: पूर्ण = "बंद" का समर्थन करता है। लेकिन कभी-कभी मौजूदा सहेजे गए क्रेडेंशियल्स पॉपुलेटेड होते हैं।

11 जून 2014 को अपडेट किया गया

अंत में, जावास्क्रिप्ट का उपयोग करके नीचे एक क्रॉस ब्राउज़र समाधान है और यह सभी ब्राउज़रों में ठीक काम कर रहा है।

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

इसके अलावा, दो तरीके जोड़ें। सत्यापन के लिए एक "validateLogin ()" और दूसरा पाठ बॉक्स / पासवर्ड / बटन "checkAndSubmit ()" में दर्ज करें पर क्लिक करने के लिए ईवेंट सुनने के लिए। क्योंकि अब लॉगिन फ़ॉर्म में फ़ॉर्म टैग नहीं है, इसलिए यहां काम नहीं करने वाली घटना दर्ज करें।

एचटीएमएल

<form id="HiddenLoginForm" action="" method="post">
<input type="hidden" name="username" id="hidden_username" />
<input type="hidden" name="password" id="hidden_password" />
</form>

Username: <input type="text" name="username" id="username" onKeyPress="return checkAndSubmit(event);" /> 
Password: <input type="text" name="password" id="password" onKeyPress="return checkAndSubmit(event);" /> 
<input type="button" value="submit" onClick="return validateAndLogin();" onKeyPress="return checkAndSubmit(event);" /> 

जावास्क्रिप्ट

//For validation- you can modify as you like
function validateAndLogin(){
  var username = document.getElementById("username");
  var password = document.getElementById("password");

  if(username  && username.value == ''){
    alert("Please enter username!");
    return false;
  }

  if(password && password.value == ''){
    alert("Please enter password!");
    return false;
  }

  document.getElementById("hidden_username").value = username.value;
  document.getElementById("hidden_password").value = password.value;
  document.getElementById("HiddenLoginForm").submit();
}

//For enter event
function checkAndSubmit(e) {
 if (e.keyCode == 13) {
   validateAndLogin();
 }
}

सौभाग्य!!!


यद्यपि यह उत्तर उपयोगी जानकारी प्रदान करता है, यह वास्तव में इस सवाल का जवाब नहीं देता है कि पासवर्ड को सहेजने से ब्राउज़र को कैसे रोका जाए।
JW Lim

@JW लिम, मैंने जवाब अपडेट कर दिया है। कृपया इस पर गौर करें। धन्यवाद!
असिक

@ शिवकुमार, ओके कृपया ओएस और सफारी का संस्करण शामिल करें। ताकि अन्य लोगों को भी उसी के बारे में पता चले। यह मेरे सिस्टम में काम कर रहा था (विंडोज़,, सफ़ारी ५)
असिक

@ आसिक सफारी 8.0.3 और मैक ओएस 10.10
शिवकुमार

7

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

तब उपयोगकर्ता तुरंत सलाह का पालन करेगा, पासवर्ड को पोस्ट-इट नोट पर लिख देगा और इसे अपने मॉनिटर पर टेप कर देगा।


10
आपको यह याद रखना होगा कि यह एक सरकारी साइट है, और इस तरह की चीजें राजनीतिक रूप से चार्ज की जाती हैं। यदि कोई ऊंचा कहता है, "यह इस तरह काम नहीं करना चाहिए", तो जो यथार्थवादी है वह समीकरण का हिस्सा नहीं है। समस्या को पोस्ट-इट नोट्स में स्थानांतरित किया जा सकता है, लेकिन उन पर नीति एक अलग विभाग को संभालने के लिए है - समस्या को स्थानांतरित कर दिया गया; ;-) और मैं वास्तव में गंभीर हो रहा हूं।
जेसन

6

जो मैं कर रहा हूं वह एक जावास्क्रिप्ट / jQuery का उपयोग करके स्वत: पूर्ण = "बंद" और पासवर्ड फ़ील्ड साफ़ करने का एक संयोजन है।

jQuery का उदाहरण:

$(function() { 
    $('#PasswordEdit').attr("autocomplete", "off");
    setTimeout('$("#PasswordEdit").val("");', 50); 
});

उपयोग setTimeout()करने से पहले आप फ़ील्ड साफ़ करने से पहले ब्राउज़र को पूरा करने के लिए प्रतीक्षा कर सकते हैं, अन्यथा आपके द्वारा फ़ील्ड साफ़ करने के बाद ब्राउज़र हमेशा स्वत: पूर्ण रहेगा।


3

यदि स्वत: पूर्ण = "बंद" काम नहीं कर रहा है ... प्रपत्र टैग को हटा दें और इसके बजाय div टैग का उपयोग करें, तो सर्वर पर jquery का उपयोग करके प्रपत्र मानों को पास करें। इसने मेरे लिए काम किया।


3

क्योंकि स्वत: पूर्ण = "बंद" पासवर्ड फ़ील्ड के लिए काम नहीं करता है, किसी को जावास्क्रिप्ट पर भरोसा करना चाहिए। यहां दिए गए उत्तरों के आधार पर एक सरल समाधान यहां दिया गया है।

अपने पासवर्ड फ़ील्ड में विशेषता डेटा-पासवर्ड-स्वत: पूर्ण = "बंद" जोड़ें:

<input type="password" data-password-autocomplete="off">

निम्नलिखित जेएस शामिल करें:

$(function(){
    $('[data-password-autocomplete="off"]').each(function() {
        $(this).prop('type', 'text');
        $('<input type="password"/>').hide().insertBefore(this);
        $(this).focus(function() {
            $(this).prop('type', 'password');
        });
    });     
});

यह समाधान क्रोम और एफएफ दोनों के लिए काम करता है।


विंडोज फ़ायरफ़ॉक्स 57.0.2 (64-बिट) अभी भी पासवर्ड को बचाने के लिए सुझाव दे रहा है क्योंकि मैंने इसे लागू किया था।
पानू हैरमो

2

बस लोगों को एहसास है - 'स्वत: पूर्ण' विशेषता अधिकांश समय काम करती है, लेकिन पावर उपयोगकर्ता इसे बुकमार्कलेट का उपयोग करके इसके आसपास प्राप्त कर सकते हैं।

ब्राउज़र को सहेजने से आपके पासवर्ड वास्तव में कीलिंग से सुरक्षा बढ़ाते हैं, इसलिए संभवतः सबसे सुरक्षित विकल्प ब्राउज़र में पासवर्ड को सहेजना है, लेकिन उन्हें मास्टर पासवर्ड (कम से कम फ़ायरफ़ॉक्स में) से सुरक्षित रखें।


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

2

मेरे पास एक काम है, जो मदद कर सकता है।

आप एक कस्टम फ़ॉन्ट हैक कर सकते हैं। इसलिए, उदाहरण के लिए डॉट / सर्कल / स्टार के रूप में सभी वर्णों के साथ एक कस्टम फ़ॉन्ट बनाएं। इसे अपनी वेबसाइट के लिए एक कस्टम फ़ॉन्ट के रूप में उपयोग करें। चेक इनस्कैप में यह कैसे करें: अपना फॉन्ट कैसे बनाएं

फिर अपने लॉग इन फॉर्म उपयोग पर:

<form autocomplete='off'  ...>
   <input type="text" name="email" ...>
   <input type="text" name="password" class="password" autocomplete='off' ...>
   <input type=submit>
</form>

फिर अपना सीएसएस जोड़ें:

@font-face {
    font-family: 'myCustomfont';
    src: url('myCustomfont.eot');
    src: url('myCustomfont?#iefix') format('embedded-opentype'),
         url('myCustomfont.woff') format('woff'),
         url('myCustomfont.ttf') format('truetype'),
         url('myCustomfont.svg#myCustomfont') format('svg');
    font-weight: normal;
    font-style: normal;

}
.password {
  font-family:'myCustomfont';
}

सुंदर पार ब्राउज़र संगत। मैंने IE6 +, FF, Safari और Chrome की कोशिश की है। बस यह सुनिश्चित करें कि आपके द्वारा परिवर्तित किया गया ओट फ़ॉन्ट दूषित न हो। आशा है ये मदद करेगा?


1
वास्तव में साफ समाधान यहाँ
andrew

6
यदि आप ऐसे समाधान का उपयोग करते हैं जो आपको ध्यान में रखने की आवश्यकता है कि उपयोगकर्ता स्वतंत्र रूप से इस लुक-अलाइक पासवर्ड फ़ील्ड में दर्ज पाठ की प्रतिलिपि बना सकते हैं। वास्तविक पासवर्ड फ़ील्ड पर कॉपी और कट फ़ंक्शन अक्षम हैं।

2

इस समस्या को हल करने का सबसे सरल तरीका INPUT फ़ील्ड को FORM टैग के बाहर रखना और FORM टैग के अंदर दो छिपे हुए फ़ील्ड को जोड़ना है। फ़ॉर डेटा सबमिट करने से पहले फ़ॉर्वर्ड श्रोता को सबमिट इनपुट श्रोताओं से दिखाई देने वाले अदृश्यों के लिए मान जमा करें।

यहां एक उदाहरण दिया गया है (आप इसे यहां नहीं चला सकते हैं, क्योंकि फॉर्म कार्रवाई वास्तविक लॉगिन स्क्रिप्ट पर सेट नहीं है):

<!doctype html>
<html>
<head>
  <title>Login & Save password test</title>
  <meta charset="utf-8">
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>

  <body>
      <!-- the following fields will show on page, but are not part of the form -->
      <input class="username" type="text" placeholder="Username" />
      <input class="password" type="password" placeholder="Password" />

      <form id="loginForm" action="login.aspx" method="post">
        <!-- thw following two fields are part of the form, but are not visible -->
        <input name="username" id="username" type="hidden" />
        <input name="password" id="password" type="hidden" />
        <!-- standard submit button -->
        <button type="submit">Login</button>
      </form>

    <script>
      // attache a event listener which will get called just before the form data is sent to server
      $('form').submit(function(ev) {
        console.log('xxx');
        // read the value from the visible INPUT and save it to invisible one
        // ... so that it gets sent to the server
        $('#username').val($('.username').val());
        $('#password').val($('.password').val());
      });
    </script>

  </body>
</html>


विंडोज फ़ायरफ़ॉक्स 57.0.2 (64-बिट) अभी भी पासवर्ड को बचाने के लिए सुझाव दे रहा है क्योंकि मैंने इसे लागू किया था।
पानू हैरमो

ठीक है, यह सिर्फ एक हैक था, जो किसी भी समय काम करना बंद कर सकता है :)
घुटने-कोला

यह सबसे अच्छा विकल्प है! सबमिट करने से पहले पासवर्ड फ़ील्ड को स्पष्ट करें: $ ('। पासवर्ड'))। वैल ('')
ebelendez

2

मेरा js (jquery) वर्कअराउंड फॉर्म सबमिट पर टेक्स्ट में पासवर्ड इनपुट प्रकार बदलने के लिए है । पासवर्ड एक सेकंड के लिए दिखाई दे सकता है, इसलिए मैं इनपुट को उसके ठीक पहले छिपाता हूं। मैं इसके बजाय लॉगिन फ़ॉर्म के लिए इसका उपयोग नहीं करूंगा , लेकिन यह वेबसाइट के प्रशासन भाग के अंदर उदाहरण के लिए उपयोगी है (स्वतः पूर्ण = "बंद")।

फॉर्म जमा करने से पहले, इसे कंसोल (jquery के साथ) के अंदर डालने का प्रयास करें।

$('form').submit(function(event) {
    $(this).find('input[type=password]').css('visibility', 'hidden').attr('type', 'text');
});

Chrome 44.0.2403.157 (64-बिट) पर परीक्षण किया गया।


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

IE 11.0.9600.18161 पर काम करता है!
Lu55

यह सच है। अब मैंने एफएफ 44.0.2 में यह कोशिश की और यह हैक अब काम नहीं करता है ... क्या शर्म की बात है। क्रोम में यह अभी भी काम करता है।
ओवलेक

आप इनपुट [टाइप = सबमिट] या बटन [टाइप = सबमिट] को एक नियमित बटन [टाइप = बटन] से बदल सकते हैं और ऑनक्लिक हैंडलर में ऐसा कर सकते हैं। यदि कोई [टाइप = सबमिट] फॉर्म में मौजूद नहीं है, तो यह फॉर्म को कुंजी दर्ज करने और सेव पासवर्ड को दिखाने से रोकने से रोकता है।
स्टीवन डॉन

2

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

पासवर्ड याद से छुटकारा पाने के लिए, मैंने अंत में पासवर्ड को इनपुट फ़ील्ड के रूप में माना, और पाठ को "धुंधला" कर दिया।

यह मूल पासवर्ड फ़ील्ड की तुलना में "सुरक्षित" है क्योंकि टाइप किए गए पाठ का चयन करने से यह स्पष्ट पाठ के रूप में दिखाई देगा, लेकिन पासवर्ड याद नहीं है। यह जावास्क्रिप्ट सक्रिय होने पर भी निर्भर करता है।

आपको नाविक से नीचे दिए गए प्रस्ताव बनाम पासवर्ड याद विकल्प के उपयोग के जोखिम का अनुमान होगा।

हालांकि पासवर्ड याद रखना उपयोगकर्ता द्वारा प्रबंधित (प्रति साइट अस्वीकृत) हो सकता है, यह एक व्यक्तिगत कंप्यूटर के लिए ठीक है, न कि "सार्वजनिक" या साझा कंप्यूटर के लिए।

मेरा मामला यह है कि यह एक ईआरपी के लिए साझा कंप्यूटर पर चल रहा है, इसलिए मैं इसे नीचे दिए गए मेरे समाधान के लिए कोशिश करूँगा।

<input style="background-color: rgb(239, 179, 196); color: black; text-shadow: none;" name="password" size="10" maxlength="30" onfocus="this.value='';this.style.color='black'; this.style.textShadow='none';" onkeypress="this.style.color='transparent'; this.style.textShadow='1px 1px 6px green';" autocomplete="off" type="text">

1

मार्कस ने एक महान बिंदु उठाया। मैंने autocompleteविशेषता देखने का निर्णय लिया और निम्नलिखित प्राप्त किया:

इस विशेषता का उपयोग करने के लिए एकमात्र नकारात्मक यह है कि यह मानक नहीं है (यह IE और मोज़िला ब्राउज़र में काम करता है), और XHTML सत्यापन को विफल करने का कारण होगा। मुझे लगता है कि यह एक ऐसा मामला है जहां सत्यापन को तोड़ना उचित है। ( स्रोत )

इसलिए मुझे यह कहना होगा कि यद्यपि यह बोर्ड में 100% काम नहीं करता है लेकिन इसे प्रमुख ब्राउज़रों में संभाला जाता है इसलिए यह एक बेहतरीन समाधान है।


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

2
मुझे लगता है कि यह सोच की एक पुरानी शैली है। कई हालिया मोबाइल ब्राउज़र वेबकीट से दूर बने हैं और इस विशेषता को या तो समर्थन करते हैं या इनायत करते हैं। मुझे इस बात की जानकारी नहीं है कि अन्य देशों या पुराने सेल फोन के ब्राउज़र इसे कैसे संभालते हैं, लेकिन सुंदर ढंग से उन विशेषताओं / तत्वों को संभालना जो ज्ञात नहीं हैं, एक अच्छे ब्राउज़र के लिए मौलिक है। यह "भविष्य के सबूत" ब्राउज़र को विकसित नहीं करता है क्योंकि वेब विकसित नहीं होता है। यह पीछे पड़ सकता है (नई सुविधाओं को लागू नहीं कर रहा है) लेकिन यह टूटेगा नहीं। आशा है कि मदद करता है =)
जोसेफ Pecoraro

1
यह प्रश्न के उत्तर के बजाय संदर्भित उत्तर के लिए एक टिप्पणी होना चाहिए।
viam0Zah

1

मैंने ऊपर कोशिश की autocomplete="off"और फिर भी कुछ भी सफल नहीं हुआ। यदि आप कोणीय js का उपयोग कर रहे हैं तो मेरी सिफारिश बटन और एनजी-क्लिक के साथ जाने की है।

<button type="button" class="" ng-click="vm.login()" />

यह पहले से ही एक स्वीकृत उत्तर है जो इसे जोड़ता है यदि कोई व्यक्ति समस्या को हल नहीं कर सकता है तो वह स्वीकृत उत्तर के साथ वह मेरे तंत्र के साथ जा सकता है।

सवाल और जवाब के लिए धन्यवाद।


हालांकि यह स्पष्ट रूप से एक फॉर्म सबमिट करने के लिए कुंजी enterया returnकुंजी को तोड़ता है ।
8eecf0d2

0

एक तरीका मुझे पता है कि उदाहरण प्रस्तुत करने के लिए जावास्क्रिप्ट का उपयोग करना है। फॉर्म सबमिट करने से पहले पासवर्ड फ़ील्ड के मूल्य को कॉपी करने के लिए।

इसके साथ मुख्य समस्या यह है कि समाधान जावास्क्रिप्ट से बंधा हुआ है।

फिर से, यदि यह जावास्क्रिप्ट से जुड़ा हो सकता है, तो आप सर्वर पर अनुरोध भेजने से पहले क्लाइंट-साइड पर पासवर्ड हैश कर सकते हैं।


क्लाइंट की तरफ हैशिंग सर्वर साइड पर हैशिंग के लिए कोई विकल्प नहीं है। मैं अनिश्चित हूं कि क्या यह किसी भी तरह की मदद है (यदि इसके अलावा किया गया है)।
ब्रिलियनड

2
क्लाइंट की ओर से हैशिंग का इस्तेमाल खतरनाक है क्योंकि इसका मतलब है कि किसी हमलावर को हैश से पासवर्ड क्रैक करने की आवश्यकता नहीं है, वे बस लॉग इन करने के लिए हैश का उपयोग कर सकते हैं। हैश पासवर्ड-समतुल्य हो जाता है।
rjmunro

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

0

वास्तविक समस्या आपके HTML में केवल विशेषताओं को जोड़ने की तुलना में बहुत गहरी है - यह सामान्य सुरक्षा चिंता है, यही कारण है कि लोगों ने सुरक्षा के लिए हार्डवेयर कुंजी और अन्य पागल चीजों का आविष्कार किया।

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

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

तो या तो आपके पास हार्डवेयर कुंजी के साथ कुछ पागल सुरक्षा नीति है (जैसे, कुछ बैंक इंटरनेट-बैंकिंग के लिए प्रस्ताव देते हैं जो मूल रूप से दो-कारक प्रमाणीकरण को रोजगार देते हैं) या मूल रूप से कोई सुरक्षा नहीं। खैर, यह थोड़ा अतिशयोक्तिपूर्ण है। यह समझना महत्वपूर्ण है कि आप किससे बचाव की कोशिश कर रहे हैं:

  1. अधिकृत पहुँच नहीं है। सरलतम लॉगिन फ़ॉर्म मूल रूप से पर्याप्त है। कभी-कभी अतिरिक्त उपाय जैसे यादृच्छिक सुरक्षा प्रश्न, कैप्चा, पासवर्ड सख्त करना आदि।
  2. साख सूँघना। HTTPS एक MUST है अगर लोग आपके वेब एप्लिकेशन को सार्वजनिक वाई-फाई हॉटस्पॉट आदि से एक्सेस करते हैं, तो उल्लेख करें कि HTTPS होने के बावजूद, आपके उपयोगकर्ताओं को नियमित रूप से अपने पासवर्ड बदलने की आवश्यकता है।
  3. अंदरूनी हमला। इस तरह के दो उदाहरण हैं, जो ब्राउज़र से आपके पासवर्ड की साधारण चोरी से शुरू होते हैं या जिन्हें आपने डेस्क पर कहीं लिखा है (किसी आईटी कौशल की आवश्यकता नहीं है) और सत्र समाप्त होने और स्थानीय नेटवर्क ट्रैफ़िक को बाधित करने (यहां तक ​​कि एन्क्रिप्टेड) ​​के साथ समाप्त होता है और आगे वेब एप्लिकेशन को एक्सेस करना ठीक वैसे ही जैसे यह एक और एंड-यूज़र था।

इस विशेष पोस्ट में, मैं डेवलपर पर डाली गई अपर्याप्त आवश्यकताओं को देख सकता हूं जिसे वह समस्या की प्रकृति के कारण कभी भी हल नहीं कर पाएगा - एंड-यूज़र सुरक्षा। मेरा व्यक्तिपरक बिंदु यह है कि डेवलपर को मूल रूप से ऐसे कार्यों पर समय बर्बाद करने के बजाय आवश्यकता समस्या पर NO और बिंदु कहना चाहिए। यह आपके सिस्टम को पूरी तरह से सुरक्षित नहीं बनाता है, यह मॉनिटर पर स्टिकर के साथ मामलों को आगे बढ़ाएगा। दुर्भाग्य से, कुछ बॉस केवल वही सुनते हैं जो वे सुनना चाहते हैं। हालाँकि, अगर मैं आप होता तो यह समझाने की कोशिश करता कि वास्तविक समस्या कहाँ से आ रही है, और यह स्वत: पूर्ण = "बंद" तब तक हल नहीं होगा जब तक कि यह उपयोगकर्ताओं को अपने सभी पासवर्डों को विशेष रूप से अपने सिर में रखने के लिए मजबूर नहीं करेगा! उसके अंत में डेवलपर पूरी तरह से उपयोगकर्ताओं की रक्षा नहीं कर सकता,


0

उसी HIPAA मुद्दे का सामना करते हुए और एक अपेक्षाकृत आसान समाधान मिला,

  1. एक सरणी के रूप में फ़ील्ड नाम के साथ एक छिपा पासवर्ड फ़ील्ड बनाएं।

    <input type="password" name="password[]" style="display:none" />
    
  2. वास्तविक पासवर्ड फ़ील्ड के लिए उसी सरणी का उपयोग करें।

    <input type="password" name="password[]" />
    

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

मैंने सरणी को परिभाषित करने की कोशिश की, जैसे कि "पासवर्ड [part2]" लेकिन यह अभी भी याद है। मुझे लगता है कि अगर यह एक अनइंतेज्ड एरे है तो इसे फेंक दिया जाता है क्योंकि इसके पास पहले स्थान पर छोड़ने के अलावा कोई विकल्प नहीं है।

फिर आप सरणी तक पहुँचने के लिए अपनी प्रोग्रामिंग भाषा का उपयोग करते हैं, उदाहरण के लिए PHP,

echo $_POST['password'][1];

1
इसके साथ आप एक सुरक्षा समस्या छिपा रहे हैं - पासवर्ड का हैश अभी भी ब्राउज़र के कैश में संग्रहीत किया जा रहा है।
अलेक्जेंडर बुरकेविच

1
कृपया क्या आप स्पष्टीकरण दे सकते हैं? पासवर्ड को POST का उपयोग करके सादे-पाठ के रूप में भेजा जाएगा। जहाँ तक मैंने पढ़ा है, POST अनुरोधों को कैश नहीं किया जा सकता है। क्या आप कह रहे हैं कि डेटा भेजने के लिए POST का उपयोग करने का कोई विकल्प है? या आप कह रहे हैं कि पासवर्ड ब्राउज़र में संग्रहीत है, क्योंकि यह पासवर्ड को संग्रहीत नहीं कर रहा है, लेकिन सरणी की शुरुआत में खाली मान है, क्या आपने इस विधि का परीक्षण किया है?
माइक

0

चूंकि अधिकांश autocompleteसुझाव, जिनमें स्वीकृत उत्तर भी शामिल है, आज के वेब ब्राउज़र में काम नहीं करते (यानी वेब ब्राउज़र पासवर्ड मैनेजर अनदेखा करते हैं autocomplete), एक अधिक उपन्यास समाधान है कि फ़ील्ड के दौरान स्वैप passwordऔर textप्रकारों के बीच स्वैप करें और पृष्ठभूमि के रंग से मेल करें। एक सादा पाठ क्षेत्र है, जो उपयोगकर्ता (या KeePass जैसा कोई प्रोग्राम) पासवर्ड दर्ज करते समय वास्तविक पासवर्ड फ़ील्ड होने के दौरान पासवर्ड को छिपाना जारी रखता है। ब्रॉउज़र उन संदेशों को सहेजने के लिए नहीं कहते हैं जो सादे पाठ फ़ील्ड में संग्रहीत हैं।

इस दृष्टिकोण का लाभ यह है कि यह प्रगतिशील वृद्धि के लिए अनुमति देता है और इसलिए सामान्य पासवर्ड फ़ील्ड के रूप में कार्य करने के लिए एक फ़ील्ड के लिए जावास्क्रिप्ट की आवश्यकता नहीं होती है (आप इसके बजाय एक सादे पाठ क्षेत्र से भी शुरू कर सकते हैं और एक ही दृष्टिकोण लागू कर सकते हैं लेकिन यह वास्तव में HIPAA नहीं है पीएचआई / PII संगत)। न ही यह दृष्टिकोण छिपे हुए रूपों / क्षेत्रों पर निर्भर करता है, जो आवश्यक रूप से सर्वर को नहीं भेजे जा सकते हैं (क्योंकि वे छिपे हुए हैं) और उनमें से कुछ चालें भी कई आधुनिक ब्राउज़रों में काम नहीं करती हैं।

jQuery प्लगइन:

https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js

उपरोक्त लिंक से प्रासंगिक स्रोत कोड:

(function($) {
$.fn.StopPasswordManager = function() {
    return this.each(function() {
        var $this = $(this);

        $this.addClass('no-print');
        $this.attr('data-background-color', $this.css('background-color'));
        $this.css('background-color', $this.css('color'));
        $this.attr('type', 'text');
        $this.attr('autocomplete', 'off');

        $this.focus(function() {
            $this.attr('type', 'password');
            $this.css('background-color', $this.attr('data-background-color'));
        });

        $this.blur(function() {
            $this.css('background-color', $this.css('color'));
            $this.attr('type', 'text');
            $this[0].selectionStart = $this[0].selectionEnd;
        });

        $this.on('keydown', function(e) {
            if (e.keyCode == 13)
            {
                $this.css('background-color', $this.css('color'));
                $this.attr('type', 'text');
                $this[0].selectionStart = $this[0].selectionEnd;
            }
        });
    });
}
}(jQuery));

डेमो:

https://barebonescms.com/demos/admin_pack/admin.php

मेनू में "प्रविष्टि जोड़ें" पर क्लिक करें और फिर पृष्ठ के नीचे "मॉड्यूल: स्टॉप पासवर्ड मैनेजर" पर स्क्रॉल करें।

डिस्क्लेमर: जब यह दृष्टिकोण दृष्टिहीन व्यक्तियों के लिए काम करता है, तो स्क्रीन रीडर सॉफ़्टवेयर के साथ समस्याएँ हो सकती हैं। उदाहरण के लिए, एक स्क्रीन रीडर उपयोगकर्ता के पासवर्ड को ज़ोर से पढ़ सकता है क्योंकि यह एक सादा पाठ क्षेत्र देखता है। उपरोक्त प्लगइन का उपयोग करने के अन्य अप्रत्याशित परिणाम भी हो सकते हैं। अंतर्निहित वेब ब्राउज़र कार्यक्षमता को अलग-अलग स्थितियों और किनारे के मामलों की एक विस्तृत जांच के साथ संयमपूर्वक किया जाना चाहिए।


-1

क्या कोई साइट है जो ब्राउज़र को पासवर्ड याद रखने की पेशकश नहीं करने के लिए कहती है?

वेबसाइट ब्राउज़र को बताती है कि यह एक पासवर्ड है जिसका उपयोग करके <input type="password">। तो फिर आप इसे वेबसाइट के नजरिए से करते हैं तो आपको इसे बदलना होगा। (जाहिर है मैं यह सलाह नहीं देता)।

सबसे अच्छा समाधान यह होगा कि उपयोगकर्ता अपने ब्राउज़र को कॉन्फ़िगर करे ताकि पासवर्ड याद न रहे।


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

1
@ कर्ल: क्योंकि पासवर्ड को खुले में टाइप करने से "शोल्डर सर्फिंग" की अनुमति मिलती है, स्क्रीन टाइप को देखते हुए पासवर्ड को चमकाने की प्रक्रिया को टाइप किया जा रहा है।
डेविड श्मिट

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

6
@karl: यदि आपके कंप्यूटर में स्पायवेयर / वायरस है तो तारांकन सुरक्षा की कोई भी राशि आपको बचाने वाली नहीं है। इंस्टॉल किए गए ऐप के लिए इंटरसेप्ट करना ज्यादा मुश्किल नहीं है, जो 'टेक्स्ट' फील्ड में टाइप किया जा रहा है, वह प्लेन-टेक्स्ट फील्ड के लिए भी ऐसा ही है।
मार्कस ओल्सन

3
इसके अलावा, यदि ब्राउज़र पासवर्ड इनपुट के बजाय एक नियमित पाठ इनपुट देखता है, तो यह पासवर्ड डेटाबेस के बजाय फ़ॉर्म स्वत: पूर्ण डेटाबेस में पासवर्ड को छिपाने की संभावना है ... और फिर इसे या किसी असंबंधित वेबसाइट पर इसे ऑटोफ़िल करने का सुझाव दें! तो जब आप शुरू करते हैं तो आप वास्तव में उससे भी बदतर होते हैं।
zwol

-1

यदि आप स्वत: पूर्ण ध्वज पर भरोसा नहीं करना चाहते हैं, तो आप यह सुनिश्चित कर सकते हैं कि उपयोगकर्ता onchange घटना का उपयोग करके बॉक्स में टाइप करें। नीचे दिया गया कोड एक साधारण HTML फॉर्म है। छिपे हुए फॉर्म एलिमेंट का पासवर्ड_ सेट किया गया शुरू होता है। जब पासवर्ड के मूल्य को बदल दिया जाता है, तो सबसे ऊपर स्थित जावास्क्रिप्ट (pw_edited फंक्शन) का मान बदल जाता है। 1. जब बटन दबाया जाता है, तो वह फॉर्म सबमिट करने से पहले यहां वैल्यूएंटर कोड की जांच करता है। । इस तरह, भले ही ब्राउज़र आपको अनदेखा कर देता है और फ़ील्ड को स्वत: सहेजता है, उपयोगकर्ता पासवर्ड फ़ील्ड में टाइप किए बिना लॉगिन पृष्ठ को पारित नहीं कर सकता है। इसके अलावा, फोकस सेट होने पर पासवर्ड फ़ील्ड को खाली करना सुनिश्चित करें। अन्यथा, आप अंत में एक चरित्र जोड़ सकते हैं, फिर वापस जाएं और सिस्टम को ट्रिक करने के लिए इसे हटा दें। मैं इसके अलावा पासवर्ड में स्वत: पूर्ण = "बंद" जोड़ने की सलाह देता हूं, लेकिन यह उदाहरण दिखाता है कि बैकअप कोड कैसे काम करता है।

<html>
  <head>
    <script>
      function pw_edited() {
        document.this_form.password_edited.value = 1;
      }
      function pw_blank() {
        document.this_form.password.value = "";
      }
      function submitf() {
        if(document.this_form.password_edited.value < 1) {
          alert("Please Enter Your Password!");
        }
        else {
         document.this_form.submit();
        }
      }
    </script>
  </head>
  <body>
    <form name="this_form" method="post" action="../../cgi-bin/yourscript.cgi?login">
      <div style="padding-left:25px;">
        <p>
          <label>User:</label>
          <input name="user_name" type="text" class="input" value="" size="30" maxlength="60">
        </p>
        <p>
          <label>Password:</label>
          <input name="password" type="password" class="input" size="20" value="" maxlength="50" onfocus="pw_blank();" onchange="pw_edited();">
        </p>
        <p>
          <span id="error_msg"></span>
        </p>
        <p>
          <input type="hidden" name="password_edited" value="0">
          <input name="submitform" type="button" class="button" value="Login" onclick="return submitf();">
        </p>
      </div>
    </form>
  </body>
</html>

-1

स्वत: पूर्ण = "बंद" फ़ायरफ़ॉक्स 31 में पासवर्ड मैनेजर को अक्षम करने के लिए काम नहीं करता है और सबसे अधिक संभावना कुछ पुराने संस्करणों में भी नहीं है।

इस मुद्दे पर मोज़िला में चर्चा की जाँच करें: https://bugzilla.mozilla.org/show_bug.cgi?id=956906

हम टोकन द्वारा उत्पन्न एक बार के पासवर्ड को दर्ज करने के लिए एक दूसरे पासवर्ड फ़ील्ड का उपयोग करना चाहते थे। अब हम पासवर्ड इनपुट के बजाय टेक्स्ट इनपुट का उपयोग कर रहे हैं। :-(


-1

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

<input type="text" style="display:none">
<input type="text" name="OriginalLoginTextBox">

<input type="password" style="display:none">
<input type="text" name="OriginalPasswordTextBox">

यह IE11 और Chrome 44.0.2403.107 के लिए ठीक काम कर रहा है


-2

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


यह उन्हें सामान्य तरीके से संग्रहीत करने से भी बदतर है, क्योंकि अब उपयोगकर्ता यह नहीं देखता है कि किसी हमलावर को स्टोर से पासवर्ड निकालने से रोकने के दौरान पासवर्ड सहेजा गया था या नहीं।
कोडइन्चोस

-2

मेरे पास इस पद्धति का उपयोग करने में कोई समस्या नहीं है:

स्वत: पूर्ण = "बंद" का उपयोग करें, एक छिपा हुआ पासवर्ड फ़ील्ड जोड़ें और फिर एक और गैर-छिपा हुआ। यदि यह स्वत: पूर्ण = "बंद" का सम्मान नहीं करता है तो ब्राउज़र छिपे हुए को पूरा करने की कोशिश करता है


-2

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

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