هل يجب أن أقيد محاولات تسجيل الدخول إلى القضبان؟

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

سؤال

أفكر في إنشاء نظام تسجيل دخول لـ Ruby on Rails، يشبه هذا النظام كثيرًا

http://visionmasterdesigns.com/tutorial-create-a-login-system-in-ruby-on-rails/

فيما يتعلق بالأمان، هل يجب أن أقوم بتحديد المحاولات التي يمكن أن يقوم بها المستخدم لتسجيل الدخول إذا أخطأ في اسم المستخدم الخاص به؟

أيضًا، يبدو أن الخطوات الأساسية لتسجيلات الدخول هي:

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

هل هناك أي شيء آخر يجب علي مراعاته؟

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

المحلول

نعم، يؤدي تحديد عدد محاولات تسجيل الدخول لكل عنوان IP (وليس لكل جلسة) إلى زيادة الأمان.

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

إذا كنت لا ترغب في استخدام أي منها، يمكنك أن تأخذ مثالاً على ما يفعلونه.

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

نصائح أخرى

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

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

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

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

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

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

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

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

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