عيوب منطق الأعمال Business Logic
الثقة بسعر من العميل وإعادة استخدام قسيمة لمرة واحدة وتكديس الخصومات فوق مئة بالمئة عيوب في قواعد التطبيق لا في صياغته
- المسار
- أمن الويب
- الوقت المتوقع
- 20 د
- المستوى
- متوسط
قبل هذا الدرس
عيب منطق الأعمال خلل فيما يسمح للتطبيق بفعله لا في طريقة تحليله للمدخل الحمولة بيانات عادية صحيحة سعر أو رمز خصم أو كمية تستخدم بطريقة لم يقصدها المصمم أدوات الفحص نادرا ما تجدها لأن لا شيء مشوه فقط من يفهم سير العمل يلاحظ أن خطوة يمكن تخطيها أو تكرارها أو إعادة ترتيبها لمصلحته
ما هي الثغرة؟
ثلاث صور كلاسيكية كلها في اللابات
- الثقة بحالة من العميل في قرار الشراء يقبل السعر من الطلب عدله وادفع ريشة واحدة
- غياب فرادة العملية قسيمة ترحيب لمرة واحدة لا تعلم كمستخدمة فاستخدامها عشر مرات يضيف رصيدا عشر مرات
- تجميع بلا حد نسب الخصم تجمع بلا سقف فتكديسها فوق مئة بالمئة يجعل الإجمالي سالبا
لماذا تحدث؟
الكود يعمل تماما في المسار الأمين الذي اختبره المبرمج والعيب في المسارات التي لم يختبرها إعادة إرسال نفس الطلب وتغيير قيمة تعاملها الواجهة كثابتة ودمج ميزات لم تصمم لتجتمع لا يوجد حقن لتصفيته فالبيانات صحيحة
كيف تتوقف؟
افرض القواعد في الخادم حيث لا يصل المهاجم ابحث عن الأسعار ولا تقبلها واجعل العمليات لمرة واحدة تستهلك رمزا ذريا وضع سقفا للخصم وامنع التكديس ولا تدع الإجمالي ينزل تحت الصفر فكر عدائيا في كل سير عمل ماذا لو تكررت الخطوة أو جاءت بترتيب مختلف أو بقيمة لا ترسلها الواجهة أبدا
اللابات الثلاثة أدناه هي هذه الصور بالضبط العبث بالسعر وإعادة استخدام القسيمة وتكديس الخصومات حتى الصفر
اللابات
العبث بالسعر
محلولسهللاب في المتصفح
اشتر المنتج بأقل من سعره الحقيقي
ادخل اللابمقفلإعادة استخدام القسيمة
محلولمتوسطلاب في المتصفح
استخدم قسيمة لمرة واحدة أكثر من مرة لتضخيم رصيدك
ادخل اللابمقفلتكديس الخصومات
محلولصعبلاب في المتصفح
اجعل إجمالي السلة صفرا أو أقل بتكديس رموز الخصم
ادخل اللابمقفل
