سؤال

الخلفية

واحدة من مزايا تنفصل مكونات النظم التي يمكن أن تمتد النظام دون الحاجة إلى لمس رمز القائمة.

في بعض الأحيان لم يكن لديك حتى إلى إعادة ترجمة التعليمات البرمجية القديمة لأنك يمكن بشكل حيوي تحميل دروس من القرص مثل هذا:

clazz = Demo.class.getClassLoader().loadClass("full.package.name.to.SomeClass");

أن يسمح للحصول على نوع من المكونات في الهندسة المعمارية من نوع (أو).

السؤال

كيف يمكنك منع التعليمات البرمجية الضارة من التشغيل عند تحميل ديناميكيا فئة من القرص باستخدام ClassLoader ?

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

المحلول

هذا السؤال هو ازدواجية في هذا واحد فائض المكدس.

هذا يقال، "العمارة البرنامج المساعد" لا يبدو وكأنه شيء يمكنك الدفاع عنه بشكل مفيد مقابل التعليمات البرمجية الضارة، حيث ستحتاج إلى التفاعل عن كثب مع بقية النظام.هذه لعبة لا يمكنك الفوز بها، لذلك لا تلعبها.ما عليك سوى قبول أن الإضافات يمكن أن تفعل ما يريدون في نظامك، لذلك يجب تثبيت الإضافات الموثوقة فقط.

نصائح أخرى

عندما تريد تجنب التعليمات البرمجية الضارة، فإن السؤال هو "كيف تحدد السلوك الخبيث"؟لا يوجد عدد لا يحصى من الأشياء التي يمكن أن يفعلها البرنامج المساعد الذي ليس في مصلحة المستخدم، ويمنعها كلها تمرين بلا معنى.

بدلا من القائمة السوداء الوظائف المحرمة، يجب أن تفضل وظائف WITELIST المسموح بها.

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

تتطلب ملفات وقعت يمكن أن تساعد إلى حد ما.

هنا مقالة ويكيبيديا عن جرة التوقيع.

هنا مقطع من مقالة ويكيبيديا كبيرة...

يمكن للمطورين رقميا الملفات جرة.في هذه الحالة التوقيع تصبح المعلومات جزءا من جزءا لا يتجزأ من ملف البيان.الجرة نفسها لم يتم توقيع, ولكن بدلا من ذلك كل الملفات داخل الأرشيف معروض جنبا إلى جنب مع الاختباري;ومن هذه الاختبارية التي تم توقيعها.كيانات متعددة قد يوقع ملف JAR, تغيير جرة الملف نفسه مع كل توقيع ، على الرغم من توقيع الملفات نفسها لا تزال صالحة.عندما جافا الأحمال وقعت جرة الملفات ، فإنه يمكن التحقق من صحة التواقيع ورفض تحميل الطبقات التي لا تتطابق مع التوقيع.كما يمكن دعم 'مغلقة' حزم في Classloader سوف فقط تصريح فئات Java يتم تحميلها في نفس الحزمة إذا كانوا كلها وقعت من قبل نفس الجهات.هذا يمنع التعليمات البرمجية الضارة من يتم إدراجها في القائمة حزمة ، حتى الوصول إلى حزمة-راقب فئات البيانات.

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

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

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