लोगों को इनपुट फ़ील्ड में कॉन्टेंट चिपकाने से रोकता है

कुछ वेबसाइटों का दावा है कि उपयोगकर्ताओं को पासवर्ड चिपकाने की अनुमति देने से सुरक्षा कम हो जाती है. हालांकि, पासवर्ड चिपकाने से सुरक्षा बेहतर होती है, क्योंकि इससे पासवर्ड मैनेजर इस्तेमाल करने की सुविधा चालू हो जाती है.

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

सामान्य मामलों में, लोगों को <input> एलिमेंट में चिपकाने से नहीं रोका जाना चाहिए.

लाइटहाउस का यह ऑडिट कैसे काम नहीं करेगा

Lighthouse फ़्लैग कोड को फ़्लैग करता है, जो उपयोगकर्ताओं को ऐसे इनपुट फ़ील्ड में चिपकाने से रोकता है जिन्हें सिर्फ़ पढ़ा नहीं जा सकता:

लाइटहाउस ऑडिट से पता चलता है कि पेज, लोगों को पासवर्ड फ़ील्ड में कॉन्टेंट चिपकाने से रोकता है

लाइटहाउस, ऐसे सभी <input> एलिमेंट इकट्ठा करता है जिन्हें सिर्फ़ पढ़ा नहीं जा सकता. साथ ही, यह हर एलिमेंट में कुछ टेक्स्ट चिपकाता है. इसके बाद, यह पुष्टि करता है कि कस्टम इवेंट हैंडलर ने paste इवेंट को रोका नहीं है.

paste इवेंट लिसनर के बाहर भी चिपकाने से रोका जा सकता है. लाइटहाउस इस समस्या का पता नहीं लगाता.

पासवर्ड वाले फ़ील्ड में चिपकाने की सुविधा चालू करने का तरीका

उस कोड को ढूंढना जिसकी वजह से कॉन्टेंट को चिपकाया नहीं जा रहा है

जिस कोड को चिपकाने से रोका जा रहा है उसे तेज़ी से ढूंढने और जांचने के लिए:

  1. इवेंट लिसनर के ब्रेकपॉइंट पैनल को बड़ा करें.
  2. क्लिपबोर्ड सूची को बड़ा करें.
  3. paste चेकबॉक्स को चुनें.
  4. अपने पेज पर पासवर्ड फ़ील्ड में कुछ टेक्स्ट चिपकाएं.
  5. DevTools सही paste इवेंट लिसनर में, कोड की पहली लाइन पर रुक जाना चाहिए.

वह कोड हटाएं, जिसे चिपकाने से रोका जा रहा है

आम तौर पर, इस समस्या की वजह preventDefault() को paste इवेंट लिसनर में किया जाने वाला ऐसा कॉल होता है जो पासवर्ड इनपुट एलिमेंट से जुड़ा होता है:

let input = document.querySelector('input');

input.addEventListener('paste', (e) => {
  e.preventDefault(); // This is what prevents pasting.
});

अगर आपको इवेंट को सिर्फ़ चिपकाने के लिए सुनना है, तो इवेंट लिसनर को हटा दें.

संसाधन

उपयोगकर्ताओं को इनपुट फ़ील्ड में कॉन्टेंट चिपकाने से रोकता है ऑडिट के लिए सोर्स कोड