سؤال

دعنا نقول أن لدينا خدمة WCF مثل واحد من أمثلة MSDN - C #، Calculatorervice، مع جميع إعدادات الخدمة في الافتراضي.

إذا كنت متصلاط، فأنا عرفت أن Calculatorervice كان شيئا مهما، وأريد أن أجعله يتوقف عن العمل، فيمكنني ببساطة اختراق رمز مراجع الخدمة وإجراء تطبيق خاص بي الذي ينشئ 10 عملاء. سيقوم هؤلاء العملاء باستدعاء طريقة عشوائية (غير متطورة) على حساب Calculatorservice كل الآن في ذلك الوقت، للحفاظ على الجلسة على قيد الحياة، ولا تغلق أبدا.

من الواضح الآن، نظرا لأن جميع الجلسات العشرة التي يتم اتخاذها (أو أيا كان عدد الدورات القصوى)، فيمكنه عدم الوصول إلى عدم الوصول إلى حساب Calculatorservice، فقد تم حظره بالكامل!

كيف يمكننا حماية خدماتنا من ذلك؟

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

المحلول

إذا كنت تخشى أن يقوم القراصنة الخبيثة بضبط خدمتك مع جلسات وهمية، فلا تستخدم جلسات! استخدم نهج "لكل مكالمة"، ومصادقة مستخدمي المستخدمين، على سبيل المثال تأكد من أنهم إما في مجال Windows / AD، أو لديهم معرفة باسم اسم المستخدم / كلمة المرور لإجراء مكالمات إلى خدمتك.

إذا حصل القراصنة الخبيثة على مزيج ساري المفعول من اسم المستخدم / كلمة المرور لخدمتكم، فلا يمكنك القيام بالكثير لإيقافه من إرسال طلباتك أكثر استمرارا أو 20 طلبا متزامنا وتسجيل خدمتك - على الأقل ليس في مستوى خدمة WCF. WCF يوفر خطوة الاختناق السلوكيات لمنع 1'000s من المكالمات المتزامنة الخبيثة من أجل حماية الخادم الخاص بك من غمرتها وتحطمت.

إذا كنت بحاجة إلى الابتعاد عن عنوان IP أو نطاقات IP محددة، فسيتعين عليك الاقتراب من ذلك في وقت سابق - في أجهزة التوجيه / جدران الحماية - لا يمكن أن تساعدك خدمة WCF بالفعل هناك.

نصائح أخرى

أفضل شيء يجب القيام به سيكون تأمين خدمة WCF الخاصة بك:

في هذه المقالة، سأريك كيف يمكنك تنفيذ الأمان على خدمة WCF. هناك العديد من الخيارات ونقاط القابلية للتمويل لتنفيذ الأمن في WCF. يمكنك أيضا استخدام منتجات محددة، مثل إدارة تفويض خادم Windows 2003، مع WCF لتنفيذ متطلبات التفويض للحل. خارج الصندوق، يدعم WCF بيانات اعتماد Windows، ورمهات اسم المستخدم وشهادات X.509 الرقمية كبيانات اعتماد أمان.

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