لماذا تخبرني Java بتطبيقي يحتوي على كود موقّع وغير موقّع؟

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

سؤال

لقد تم تشغيل Appa Java الموقّع بشكل جيد حتى Java Update 19. الآن بعض مستخدمينا ولكن ليس جميع مستخدمينا في Java Update 19 يبلغون عن رسالة أمان Java تفيد بأن تطبيقنا يحتوي على كود موقّع وغير موقّع.

عملية إنشاء تطبيقنا على النحو التالي:

  1. تنظيف وبناء مشروع Applet في NetBeans IDE.
  2. افتح ملف Applet Jar في WinRar وأضف ملفات MySQL JDBC المطلوبة.
  3. قم بتوقيع ملف applet Jar.

هل يمكن لأحد أن يخبرني كيف أحدد الرمز الموقّعة وما هو الكود الذي لم يتم توقيعه في تطبيقنا؟ هل هناك طريقة أفضل لتضمين ملف جرة برنامج تشغيل MySQL JDBC في تطبيقنا بخلاف نسخ محتويات ملف JAR في ملف applet jar الخاص بنا؟

شكرًا

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

المحلول

بعض الأشياء التي يجب تجربتها:

  • انتقل إلى لوحة التحكم في المكون الإضافي Java ($ java_home/bin/controlpanel).
  • اذهب إلى Advanced التبويب.
  • وسعت Debug
  • الشيك Enable tracing, Enable logging, ، و Show applet lifecycle exceptions
  • وسعت Java console
  • الشيك Show console
  • انقر OK (أو Close, ، اعتمادا على نظام التشغيل الخاص بك)

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

نصائح أخرى

تحرير: نظرًا لوجود خطأ في تحديث Java 7 45 ، يجب ألا تضيف مكتبة موثوقة إلى ملف الخاص بك. فقط أضف قاعدة السمة الجديدة التي يمكن السماح لها. انظر هذا السؤال لمزيد من المعلومات: بيان جافا Applet-اسمح لجميع قشرة الرموز التي يمكن السماح لها بالمتصل

تم إصدار Java 7 Update 21 في 16 أبريل 2013 وتسبب في بدء تطبيق Applet هذا الحوار هذا التحذير.

وفقًا لملاحظات الإصدار: اعتبارًا من JDK 7U21 ، يتم التعامل مع رمز JavaScript الذي يستدعي الكود داخل تطبيق Applet المميز على أنه رمز مختلط ويتم رفع مربعات تحذيرات تحذير إذا لم يتم وضع علامة على ملفات JAR الموقعة مع سمة المكتبة الموثوقة.

لإصلاح هذا التحرير ملف manifest.mf وإضافة سطر مثل هذا:

Trusted-Library: true

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

تتمثل إحدى الطرق السريعة لتأمين تطبيقك في منعه من تشغيل مواقع الويب الأخرى. قم بذلك عن طريق وضع الكود في init() الطريقة التي تنظر إلى getCodeBase().getHost() ويلقي استثناء إذا لم يتطابق مع موقعك.

يقدم Java 7 Update 25 طريقة أخرى للحد من المواقع التي يمكن تشغيل التطبيق الخاص بك. يمكنك تعيين سمة CodeBase في ملف البيان الخاص بك مثل هذا:

Codebase: test.example.com www.example.com

يقدم Java 7 Update 45 (تم إعادة تربيته 16 أكتوبر 2013) المزيد من التغييرات على نظام LiveConnect (جاف جافا سكريبت إلى الجبليت) الذي قد يتسبب في موجه آخر. يتحدث هذا المقال عن تغييرات 7U45: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

في الأساس ، ستحتاج أيضًا إلى إضافة ما يلي إلى ملف البيان الخاص بك لتجنب المطالبات:

Caller-Allowable-Codebase: test.example.com www.example.com

إذا كنت تبيع منتجًا يتضمن تطبيقًا ولا تعرف المجالات التي يمكن نشرها عليه ، فيمكنك ملء * هنا.

يعد خلط الكود الموثوق به وغير الموثوق به معًا ثغرة أمنية تم إصلاحها في 6U19 (إصدار وحدة المعالجة المركزية/SSR الحالية في وقت كتابة هذا التقرير). انظر المستندات. يجب أن يوضح حظر المزيج أو استخدام مصحح الأخطاء مكان المشكلة.

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