سؤال

لقد تلقيت الاحتياجات المؤسفة لبناء صفحة تعرض كلمة مرور جديدة للمستخدم المصادق عليه. لقد احتجت دون جدوى هذا الشرط كأفكرة سيئة عموما، لكنني أعتقد أن هيئة المحلفين لا تزال كذلك، لذلك ربما هناك حججات ضد عرض كلمة مرور جديدة لم أحاول بعد. هل لديك اي اقتراحات؟

ثانيا، سيكون من الأفضل عرض كلمة المرور للمستخدم كصورة، بدلا من نص. أنا قلق بشأن النص يجري "كشط" الذي أفترض أنه سيكون أكثر صعوبة مع صورة. كيف أتأكد من عدم التخزين المؤقت للصورة من قبل متصفح المستخدمين؟

شكرا مقدما،

هل كانت مفيدة؟

المحلول

لست متأكدا مما تراه وما هي المتطلبات، ولكن كقاعدة عامة للإبهام، لا أعتبر هذا مصدر قلق أمن شديدة. دعنا ننظر إلى ناقلات الهجوم:

  1. الرجل في الهجوم الأوسط على حركة نص نص HTTP - صورة، وخاصة واحدة يتم تعبئتها ضد OCR (Captcha Style) سيمنع هذا الهجوم، ولكن ببساطة استخدام HTTPS كما ذكر الإبعاد.
  2. تجريف الشاشة من خلال تطبيق سطح المكتب البعيد - لن يساعد حماية HTTPS، ولا صورة لأن الفوضى على شاشة يجب قراءتها من قبل إنسان على أي حال (يمكن للمهاجم البشري أيضا التحايل أيضا على حماية الصور التي يبعثها ضد "رجل في الوسط" إرشاد المستمع إلى أرشفة الصورة ثم انتقل إليها يدويا). إذا كان الإنسان وراء مكشطة الشاشة، فلن يكون لديك أي حماية.
  3. على كتفك التنصت - إذا كان المهاجم يقف ببساطة وراء المستخدم، ثم مرة أخرى - ليس لديك أي حماية.

هل لاحظ أنه إذا كانت كلمة المرور الخاصة بك، يجب عليك إظهارها للمستخدم، فلا توجد طريقة حولها. تتم محاولة المواقع في اتجاه واحد تخفيف التهديد هو إرسال كلمة المرور عن طريق البريد الإلكتروني - ضمن افتراض أن المستخدم يمكن أن يتأكد من قراءة البريد الإلكتروني عندما لا أحد يبحث، في وقتك. لسوء الحظ، لن يتيح لك البريد الإلكتروني حتى أن يكون لديك الاستفادة من التشفير لحماية النقل.

في رأيي، أفضل طريقة هي السماح للمستخدم بإدخال كلمة المرور (في حقل Opfuscation كلمة المرور، كما هو الحال عادة يتم ذلك) ثم تخزين HTHH لكلمة المرور الخاصة بحيث لا تحتاج إلى تخزين كلمة المرور الفعلية، ومنعك من إظهار هذا للمستخدم. إذا كان يجب عليك إظهارها للمستخدم (ربما لأنك تولدها)، فتأكد من أنك أكثر من HTTPs وإظهارها فقط - تعقيد جميع FanFare فقط التنفيذ دون إعطاء أي فوائد أمنية.

نصائح أخرى

الصورة لن تأمين الكثير.

إذا كنت تستخدم HTTPS، فستكون كلمة المرور آمنة في كلتا الحالتين. إذا كنت تستخدم HTTP، فسيتم إرسال كلمة المرور في نص واضح من النموذج (أفترض أنك تعرضها لبعض التأكيد)، وكيفية عرض الثواني لاحقا لا يهم.

الشيء المهم هو التأكد من أن الصفحة التي تعرض كلمة المرور غير مخاخر.

Cache-control: no-cache, no-store, must-revalidate

هل جربت ما يلي؟

  • لا يمكنك إظهار كلمة المرور لأنك لا تخزنه.

لست متأكدا مما إذا كانت هذه فكرة سيئة حقا. عليك أن ترسل كلمة المرور الجديدة للمستخدم في كلتا الحالتين. إرسال كبريد إلكتروني غير مشفرة له نفس المشكلات - تم التقاط النبيغة أو التخزين المؤقت مؤقتا عند استخدام بريد الويب.

أود أن أقترح استخدام صورة، قد يكون بعض captcha مثل واحد. ولكن هذا يحمي فقط أكثر قليلا ضد الهجمات الآلية، وليس ضد الهجمات البشرية.

الطريقة الوحيدة للحصول على الشيء الآمن هو استخدام الفراخ، مما يشير إلى https. ثم استخدام موقع الويب الخاص بك لعرضه قد يصبح أكثر أمانا من الاعتماد على البريد الإلكتروني أو الحلول من هذا القبيل.

دع المستخدم المستخدم يدخل كلمة مرور جديدة له نفس المشكلة - الآن عليك إرسالها مرة أخرى إلى الخادم.

أقترح ببساطة استخدام HTTPS لتشفير حركة المرور وتخزينها فقط من كلمات المرور المؤقتة فقط، بحيث لا يتم تخزين كلمة المرور الفعلية داخل قاعدة البيانات. بالطبع، لا يمكنك منع "المتسللين" الجسديين (مثل الأشخاص الذين يبحثون خلف الكتفين) من سرقة كلمة مرور مؤقتة، ولكن، إذا أمكن، فيمكنك طلب المستخدمين تغيير كلمة المرور الخاصة بهم الفورية التي يقومون بها في تسجيل كلمة مرور مؤقتة، بحيث يتم تخفيف المخاطر التي تحتوي على كلمة مرور مؤقتة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top