يتم منع المستخدمين من اللصق في حقول الإدخال

تدّعي بعض المواقع الإلكترونية أنّ السماح للمستخدمين بلصق كلمات المرور يقلل من مستوى الأمان. ومع ذلك، فإنّ لصق كلمة المرور يُحسِّن الأمان لأنّه يتيح استخدام خدمات إدارة كلمات المرور.

تنشئ تطبيقات إدارة كلمات المرور عادةً كلمات مرور قوية للمستخدمين، ثم تخزّنها بأمان، ثم تُلصقها تلقائيًا في حقول كلمات المرور كلما احتاج المستخدمون إلى تسجيل الدخول. إنّ هذا النهج بشكل عام أكثر أمانًا من إجبار المستخدمين على كتابة كلمات مرور قصيرة بما يكفي لتذكّرها.

بشكل عام، يجب عدم منع المستخدمين من اللصق في عناصر <input>.

سبب تعذُّر اجتياز عملية تدقيق Lighthouse هذه

يُبلغ Lighthouse عن الرمز الذي يمنع المستخدمين من اللصق في حقول الإدخال غير المقروءة فقط:

تُظهر عملية تدقيق Lighthouse أنّ الصفحة تمنع المستخدمين من اللصق في حقل كلمة المرور.

يجمع Lighthouse جميع عناصر <input> غير المقروءة فقط، ويلصق بعض النصوص في كل عنصر، ثم يتحقّق من أنّه لم يتم منع حدث paste من خلال معالِج أحداث مخصّص.

من الممكن أيضًا منع اللصق خارج أداة معالجة حدث paste. لا يرصد Lighthouse هذا السيناريو.

كيفية تفعيل اللصق في حقول كلمات المرور

العثور على الرمز الذي يمنع اللصق

للعثور على الرمز الذي يمنع اللصق وفحصه بسرعة:

  1. وسِّع لوحة النقاط الفاصلة لأداة معالجة الحدث.
  2. وسِّع قائمة الحافظة.
  3. ضَع علامة في مربّع الاختيار paste.
  4. الصِق بعض النصوص في حقل كلمة مرور على صفحتك.
  5. من المفترض أن تتوقف أدوات المطوّرين مؤقتًا عند أول سطر من الرمز المبرمَج في أداة معالجة الحدث paste ذات الصلة.

إزالة الرمز الذي يمنع اللصق

غالبًا ما يكون مصدر المشكلة هو طلب preventDefault() ضمن مستمع أحداث paste المرتبط بعنصر إدخال كلمة المرور:

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

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

إذا كنت تستمع إلى أحداث اللصق فقط لمنع حدوثها، أزِل أداة معالجة الأحداث بالكامل.

الموارد

رمز المصدر لتدقيق منع المستخدمين من اللصق في حقول الإدخال