وصف المشكلة
خلال مراجعة أمنية لنشر Discourse المخصص لدينا، اكتشفنا خطرًا محتملاً لاستنفاد الموارد يتعلق بواجهة برمجة تطبيقات تحميل الملفات (API).
التفاصيل
-
واجهة برمجة تطبيقات التحميل (API): /uploads.json
-
المشكلة: لا يوجد تحديد واضح لمعدل الطلبات على هذا المسار (endpoint). يمكن لأي مستخدم مصادق عليه تحميل أعداد كبيرة من الملفات بسرعة.
-
إعادة الإنتاج:
-
عن طريق أتمتة الطلبات، يمكن للمستخدم إرسال آلاف طلبات التحميل في وقت قصير.
-
تحققنا من أنه بعد إرسال آلاف طلبات التحميل، يحتوي دليل التخزين على آلاف الملفات.
-
التأثير الأمني/على الموارد
-
يمكن للمهاجمين أو حتى المستخدمين العاديين استنفاد مساحة تخزين الخادم، أو تدهور الأداء، أو التسبب في مشكلات تشغيلية عن طريق تحميل أعداد هائلة من الملفات.
-
يمكن إساءة استخدام هذا بشكل محتمل لرفض الخدمة (denial-of-service) أو لزيادة تكاليف التخزين بشكل غير متوقع.
أسئلة
-
هل هناك أي تحديد مدمج لمعدل الطلبات أو منع إساءة الاستخدام للمسار /uploads.json في Discourse؟
-
هل هناك إعدادات أو إضافات موصى بها لتقييد تكرار تحميل المستخدمين للملفات أو إجمالي استخدام التخزين لكل مستخدم؟
-
هل هناك أفضل الممارسات لمنع استنفاد الموارد الناجم عن تحميل الملفات في عمليات نشر Discourse؟
شكراً لاهتمامكم ومشورتكم!