كيف يجب أن أقوم بتخزين كلمات المرور بشكل آمن واستخدام Auth HTTP في امتداد Chrome

StackOverflow https://stackoverflow.com/questions/1960681

سؤال

أقوم بعمل ملحق كروم يتطلب جلب ملف XML من خادم آمن.

أنا أستخدم حاليًا xmlhttprequest () لإجراء مكالمة إلى الخادم

https://username:password@mydomain.com

الذي يعيد كائن XML الذي يمكنني تحليله وعرضه. أريد أن يكون هذا الامتداد متاحًا لأكثر من مجرد استخدام هوايتي ، لذلك يحتاج إلى صفحة خيارات لتعيين وتخزين اسم المستخدم وكلمة المرور.

كيف يمكنني تخزين كلمة مرور المستخدم بالكروم بحيث تكون آمنة؟ يحتوي Chrome على Global LocalStorage لكل امتداد يسمح لمؤلفي التمديد بتخزين البيانات ، ولكن يتم تخزينه في نص عادي. لا يسمح للملحقات بالوصول إلى تخزين "تذكر كلمة المرور الخاصة بي" (بأسباب وجيهة).

وهل هناك طريقة أكثر أمانًا للقيام بـ HTTP Auth؟ تتطلب طريقتي الحالية في القيام بالأشياء تمرير اسم المستخدم/كلمة المرور في نص عادي في عنوان URL في كل مرة يتم فيها استدعاء الوظيفة ، حتى لو لم تنتهي صلاحية جلسة المصادقة.

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

المحلول

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

نصائح أخرى

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

بشكل عام ، يأخذ Chrome فلسفة الثقة في نظام التشغيل لحماية ملف تعريف المستخدم حيث يتم تخزين هذه البيانات ، لذلك إذا كنت تستخدم التخزين المحلي لتخزين كلمات المرور ، فلا يختلف الأمر عن ما يفعله Chrome اليوم باستخدام كلمة المرور التلقائية للسيارات ، تاريخ المتصفح ، إلخ ، إلخ.

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