تحدي برمجي !!


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

ولتطبيقه في مثل حالتك، سيمكن تطبيقه بالمفهوم البسيط وفق الخطوات التالية:

  • تحليل عنوان IP الطلب
  • استعمال تخزين مؤقت لتخزينه مقترنا بعدد الطلبات
  • زيادة العد كل مرة يتم فيها تقديم طلب جديد
  • محو السجل من التخزين المؤقت في حال تجاوزه المدة المسموحة

الآن لنفرض أننا لا نسمح للمستخدمين بارسال نفس الطلب ثلاث مرة خلال دقيقة واحدة.

المستخدم A قام بارسال طلب الى خادم الويب الخاص بنا. سيقوم التطبيق بتخزين عنوانه وضبط العد كـ 1، لو قام المستخدم في نفس الدقيقة باعادة ارسال نفس الطلب فإنه سيتم تزويد العد بـ 2 ولو قام بارساله مرة ثالثة سيتم ضبط العد كـ 3 وفي حالة ما حاول المستخدم ارسال طلب رابع سيقوم الخادم بالتعرف على ان المستخدم A يحاول الوصول الى نفس المورد مرة رابعة خلال دقيقة واحدة. وكنتيجة: سيقوم بحظر الطلب او اظهار رسالة الخطأ 429 التي تعنى بمثل هاته الحالات (Too many attempts).

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

طبعا يوجد العديد من الواجهات البرمجية والمكتبات المطورة لهذا المفهوم بشكل اكثر استاعا واكثر استيعابا لجوانب ادق من الموضوع.

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

جزاك الله خيرا

هل تسمح لي ان انسخ ردك لكتابته في صفحتي الشخصية ؟

نعم لا مشكلة، تفضل


تطوير الويب

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

90.8 ألف متابع