سؤال

لقد رأيت تطبيقات ويب ذات قيود على محاولات تسجيل دخول المستخدم.

هل هي ضرورة أمنية، وإذا كان الأمر كذلك، لماذا؟

على سبيل المثال: لقد كانت لديك ثلاث محاولات تسجيل دخول فاشلة، دعنا نحاول مرة أخرى خلال 10 دقائق!!

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

المحلول

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


كما يمكن أن يكون استخدام اختبار CAPTCHA المطبق جيدًا طريقة بديلة لتعزيز أمان تطبيقك ضد هجمات القوة الغاشمة.هناك مجموعة واسعة من موفري كلمة التحقق متاح مجانًا، فلنجرب الطريقة السهلة إذا كنت في عجلة من أمرك.يرجى أيضًا مراعاة أن هناك الناس خارج هنا قائلا ذلك "أوه، لا!إن عنصر التحقق هذا ليس آمنًا بدرجة كافية وهم على حق في بعض الأحيان!".

"لأولئك الذين لا يعرفون، اختبار CAPTCHA هو برنامج يمكنه معرفة ما إذا كان مستخدمه إنسانًا أم كمبيوتر آخر.إنها تلك الصور الصغيرة للنص المشوه الذي تترجمه عند الاشتراك في Gmail أو ترك تعليق على مدونة شخص ما.والغرض منها هو التأكد من أن أي شخص لا يستخدم جهاز كمبيوتر للتسجيل في ملايين الحسابات عبر الإنترنت تلقائيًا، أو.." المرجع.

نصائح أخرى

ورأيت مقاربة خلاقة لهذا مرة واحدة ...

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

attempt | lockout time
======================
   1    |     2s
   2    |     4s
   3    |     8s
   4    |    16s
   5    |    32s
   6    |    64s
   7    |   128s
   8    |   256s
   9    |   512s
  10    |  1024s

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

وأنا لم تستخدم هذا بنفسي (حتى الآن)، ولكن من الناحية النظرية I تماما مثل هذه الفكرة. بالطبع على دخول ناجح، العداد تتم إعادة تعيين.

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

وعادة، قد ترغب في الوقت المستخدم من أصل (10 دقيقة كما ذكرتم) بعد 3 محاولات، وقفل بها بعد 6 أو 9 محاولات متكررة متتالية، مما اضطر المستخدم للاتصال بك من أجل فتح حسابه. يتم وضع هذا في مكانه لأن شخص يمكن تعديل نصوصهم لضبط مهلة الخاص بك.

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

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

بالنسبة لمشاريعي الخاصة، قمت بتأليف مكتبة عامة حول "التحكم في الفيضانات" والتي تتعامل مع هذا النوع من الأشياء.

يسمح لي بتحديد عدد المحاولات التي يمكن إجراؤها في مقدار X من الوقت.فهو يسمح بعدد معين من محاولات "النعمة" في وقت قصير، بحيث يتم اكتشاف السلوك غير المعتاد فقط.

أسجل في قاعدة البيانات بعض الأشياء:

  • عنوان IP (أو أول 24 بت منه)
  • الإجراء الذي تمت محاولته (على سبيل المثال، "تسجيل الدخول"، "بحث"، "تعليق")
  • وقت المحاولة
  • عدد المحاولات (عداد المحاولات)

بالنسبة لكل محاولة يتم إجراؤها، أقوم بالاستعلام عن عنوان IP الجزئي والإجراء، وإذا تم إجراء محاولة سابقة خلال فترة زمنية معينة، أقوم بزيادة عداد المحاولات لتلك المحاولة.إذا تجاوز عداد المحاولات عدد محاولات السماح المسموح بها، فأنا أتحقق مما إذا كانت المحاولة الأخيرة خلال X ثانية من الآن وإذا كان الأمر كذلك، فسيتم إرجاع خطأ - وبالتالي سيتم حظر الإجراء (وسيتم إخبار المستخدم بالانتظار X ثانية قبل المحاولة مرة أخرى).إذا كان عداد المحاولات أقل من عدد محاولات السماح، فسأرجع صحيحًا واتركه ينزلق.

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

نعم، انه من الضروري لحماية الحسابات من القوة الغاشمة الهجمات المتطورة - كما هو الحال في استخدام السير والملفات القاموس - الى شخص مجرد محاولة لتخمين كلمة المرور لحساب

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

وإعادة المحاولات الفاشلة بعد تسجيل الدخول الصحيح تقريبا يجعل النظام كله لا قيمة لها.

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

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

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