C # MVC: ما هي طريقة جيدة لمنع هجمات الحرمان من الخدمة (DOS) على مواقع ASP.NET؟

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

سؤال

أبحث عن طريقة جيدة وغير مكلفة لمنع الحرمان من هجمات الخدمة على موقعي ASP.NET MVC.

لقد كنت أفكر في حل يعترض httphandler ثم حساب الطلبات في كائن ذاكرة التخزين المؤقت، مع كون المفتاح شيء مثل "requestcount_ [ipaddressofrequestclient] ولكن هذا يبدو وكأنه يولد النفقات العامة مجنون.

اي افكار يمكن ان تكون رائعه للعرض. شكرا لك!

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

المحلول

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

يساعد هذا على مستوى التطبيق (يحمي تطبيقك / قاعدة البيانات الخاصة بك) ولكنه ليس حلا كاملا، حيث لا تزال الزيارات تأتي على مستوى الشبكة.

كخط الدفاع الأمامي، ربما أعتمد على الأجهزة. يوفر العديد من مزود خدمة الإنترنت بعض الحماية، على سبيل المثال: http://www.softlayer.com/facies_network_n2.html.

نصائح أخرى

هذا سؤال قديم للغاية، ولكن آمل أن يساعد هذه المرجع على شخص آخر.

الآن نحن نستخدم "واجهة برمجة تطبيقات API .NET.' (https://apiprotector.net.) لحماية واجهات برمجة التطبيقات لدينا ضد هجمات DOS و DDOS.

إنها مكتبة متوافقة مع MVC، WebAPI و .NETCORE أيضا، التي قدمت لنا نتائج جيدة جدا, ، الاثنان في بساطة, ، ولكن بشكل أساسي في قابلية الصيانة. وبعد مع هذا Lib، يمكنك حماية كل وظيفة من واجهة برمجة التطبيقات الخاصة بك بمثابة خط واحد، وبطريقة محددة للغاية.

كما هو موضح في موقع الويب الخاص ب API حامي .NET:

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

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

يتيح لك API Protector .NET حماية كل وظيفة من واجهة برمجة تطبيقات .NET الخاصة بك ضد DOS و DDOS الهجمات دون جهد، بطريقة بسيطة وإعلانية وصحية.

النقطة السلبية الوحيدة هي أن يكلف 5 دولار أمريكي, ، لكننا أعطانا ما كنا نبحث عنه بسعر منخفض للغاية، على عكس مكتبة Webapithrottle التي على الرغم من أنه كان الخيار الأول الذي جربته (لأنه مجاني)، فقد انتهى الأمر إلى أنه غير عملي غير قابل للتعليم عندما أردنا حماية وظائف مختلفة في طريقة محددة (وهي أمر حاسم للحماية الفعالة، كما هو موضح).

يسمح API Protector .NET بالجمع بين الحماية المختلفة (عن طريق IP، من قبل المستخدم، حسب الدور، بشكل عام، إلخ) تزيين كل وظيفة مع سطر واحد, ، مما يجعلها من السهل تنفيذ وصيانة. وبعد للحصول على شرح مفصل قراءة: https://apiprotector.net/how-it-works.

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

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