سؤال

أتساءل عن أي طريقة فعالة لإخفاء رمز Silverlight الخاص بنا.أعلم أن هناك بعض أدوات التعتيم المتاحة ولكن يبدو أن الأشخاص يمكنهم اختراقها أيضًا.هل حقق أي شخص أي نجاح على هذه الجبهة؟

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

المحلول

سيعمل Pragma No-Cache على الصفحة التي تستضيف تطبيق Silverlight على منع المتصفح من تخزين ملف xap مؤقتًا، وبدلاً من ذلك سيقرأه عن طريق البث من خادم الويب.وهذا سيجعل من الصعب على اللمحات الحصول على xap.التشويش سيجعل الأمر أكثر صعوبة.

تأكد أيضًا من استضافة التطبيق في https، وإجراء المصادقة خارج التطبيق الرئيسي.بهذه الطريقة يتم تشفير دفق xap في الطريق إلى الأسفل.

نصائح أخرى

لا يمكنك حقًا إخفاء أي شيء يتم نقله إلى العميل.إذا أراد الناس معرفة ذلك، فسيفعلون.

تحتاج إلى وضع أي تعليمات برمجية خاصة في الواجهة الخلفية لديك حيث لا تستطيع الأجهزة العميلة الوصول إليها.

لا.يجب أن يكون متصفح العميل قادرًا على قراءة التعليمات البرمجية، وبالتالي يكون قابلاً للاختراق.

فيما يلي مقالة قصيرة حول كيفية التعتيم على ملف xap

http://www.rudigrobler.net/Blog/obfuscating-silverlight

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

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

يعد منع المتصفح من التخزين المؤقت لـ XAP أمرًا عديم الفائدة، مثل استخدام HTTPS، حيث أنه من الأسهل بكثير على المهاجم استخدام شيء معقد مثل Firebug للحصول على XAP بدلاً من البحث عنه في ذاكرة التخزين المؤقت للمتصفح أو استخدام Man in the Middle Attack.

أتصور أنه إذا كان لديك الكثير من التحفيز، فيمكنك:

  • تشويش كل التجمعات
  • استخدم XAPs المحملة الديناميكية
  • قم بتشفير جانب خادم XAP الديناميكي المحمل وفك تشفيره من جانب العميل باستخدام مفتاح تم إنشاؤه ديناميكيًا يتم إرساله بواسطة خدمة ويب (ليس في نفس الطلب.ولا تعيد استخدام المفتاح.)

لن يمنع المهاجم من الحصول على الكود الخاص بك، ولكن سيتعين عليه تحليل xap الأولي (المبهم) الخاص بك لفهم كود فك التشفير، والحصول على المفتاح، والحصول على XAP الديناميكي المشفر (المبهم أيضًا) المحمل، وفك تشفيره، ثم إدارته لإزالة التشويش عليه، ثم فهم كيفية توصيله بالتطبيق.إنه ليس مثل استخدام HTTPS، لأنه هنا تتم عملية التشفير وفك التشفير في التطبيق بحيث تصبح أدوات مثل Firebug أو Fiddler عديمة الفائدة.

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

وفي كلتا الحالتين، كان من المضحك كتابة هذا :p

لا يمكنك إخفاء ملفات XAP (على الأقل ليس بشكل تافه).ولكن يمكنك التعتيم عليهم.لا يعد التشويش إجابة نهائية، ولكنه بداية ويمكن أن يوفر حماية جيدة جدًا.

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