أفضل طريقة للحد من محاولات تسجيل الدخول (والسجل)

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

  •  06-09-2019
  •  | 
  •  

سؤال

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

أنا أظن ملف تعريف الارتباط لن يعمل بسبب حظر ملفات تعريف الارتباط أو تطهيرها تلقائيا، لكن هل تعمل جلسات؟ أو هل يجب تخزينها في قاعدة بيانات؟ عدم وجود طرق يمكن استخدامها / يتم استخدامها لذلك أنا ببساطة لا أعرف ما هو عملي.

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

المحلول

استخدم بعض الأعمدة في جدول المستخدمين الخاص بك 'FASTERN_LOGIN_ATTEMPTS' و "FIST_LOGIN_TIME". أول زيادات واحدة لكل فشل تسجيل الدخول، وتعيين تسجيل الدخول الناجح. الشخص الثاني يسمح لك بمقارنة الوقت الحالي مع آخر وقت فشل.

يمكن أن يستخدم الكود الخاص بك هذه البيانات في DB لتحديد المدة التي تنتظر فيها قفل المستخدمين، والوقت بين تسجيلات الدخول المسموح بها وما إلى ذلك

نصائح أخرى

بافتراض أن جوجل قام باختبار قابلية الاستخدام اللازمة (وليس افتراضا غير عادلة) وقررت استخدام CAPTCHAS، أود أن أقترح معهم.

متزايد المهلة محبط عندما أكون مستخدم حقيقي وقد نسيت كلمة المرور الخاصة بي (مع العديد من المواقع الإلكترونية وكلمات المرور المرتبطة بها التي تحدث كثيرا، خاصة بالنسبة لي)

محاولات التخزين في قاعدة البيانات هي أفضل حل IMHO لأنه يمنحك سجلات التدقيق لمحاولات خرق الأمان. اعتمادا على طلبك هذا قد يكون أو لا يكون متطلبات قانونية.

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

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

سياسة القفل هي كل شيء على ما يرام وجيد ولكن هناك توازن.

أحد الاعتبارات هو التفكير في تقارير أسماء المستخدمين - تخمين؟ هل يمكن تعدادها على الإطلاق؟

كنت في اختبار القلم تطبيقات خارجي ل DOTCOM مع بوابة الموظف التي خدمت Outlook Web Access / Intranet Services، بعض التطبيقات. كان من السهل تعداد المستخدمين (فريق Exec / Expanial على موقع الويب نفسه، ومن خلال أمثال Google و Facebook و LinkedIn وما إلى ذلك). بمجرد أن تحصل على تنسيق تسجيل الدخول لاسم المستخدم (الاسم الأول، ثم تم إدخال اللقب كسلسلة واحدة)، كان لدي القدرة على إغلاق 100 من المستخدمين بسبب الضربات الثلاثة والسياسة الخارجية.

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

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

يجب تنفيذ طبقة من الأمان البديلة (أو الإضافية) في وقت سابق في دورة REQ / RE لحماية التطبيق وقاعدة البيانات من أداء عمليات القفل التي يمكن أن تكون مكلفة وغير ضرورية.

التعبير عن الغاشمة هو مثال ممتاز يستخدم Redis التخزين المؤقت للتصفية من الطلبات الضارة أثناء السماح بأخرى صادقة.

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

أحب مفهوم وقت زيادة أضعاف مضطربة بين المحاولات، [...

بدلا من استخدام الوقت المتزايد بشكل كبير، يمكنك في الواقع تأخير عشوائي بين المحاولات المتعاقبة.

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

تخزين معلومات خادم المعلومات. هذا سيسمح لك بالدفاع عن الهجمات الموزعة (القادمة من آلات متعددة).

قد ترغب في قول كتلة تسجيل الدخول لبعض الوقت يقول على سبيل المثال، بعد 10 دقائق من محاولات الفشل على سبيل المثال. وقت زيادة أضعاف جيدا يبدو جيدا بالنسبة لي. ونعم، قم بتخزين المعلومات في جلسة خادم جانب الخادم أو قاعدة البيانات. قاعدة البيانات أفضل. لا توجد أعمال ملفات تعريف الارتباط لأنه من السهل التعامل مع المستخدم.

قد ترغب أيضا في تعيين مثل هذه المحاولات مقابل مدرج IP Client AS لأنه من الممكن تماما أن يحصل المستخدم الصالح على رسالة محظورة بينما يحاول شخص آخر تخمين كلمة مرور المستخدم الصحيحة بمحاولات الفشل.

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