سؤال

يمكن أ JApplet إستخدم JFileChooser بحيث يمكن للمستخدم تحديد ملف على القرص الصلب الخاص به؟أم أن هذا ينتهك أمان تطبيق Java الصغير؟(أفترض أنه يتم استخدام إعدادات الأمان الافتراضية.لا أريد أن أطلب من المستخدمين منحي أذونات إضافية.)

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

المحلول

يشير هذا موضوع التي تحتاج إلى رقميا الاتصال الصغير قبل يسمح لJFileChooser.

نصائح أخرى

كما ذكرنا سابقًا، تحتاج إلى التوقيع على التطبيق الصغير الخاص بك، مما يؤدي إلى ظهور "تحذير أمني غامض" عندما يُعرض التطبيق الصغير على المستخدم.عندما يقبل المستخدم تشغيل هذا التطبيق الصغير، يتم منح التطبيق الصغير حق الوصول الكامل ويعمل مثل التطبيق العادي مع آثاره الأمنية الواضحة.أنا في نفس المعضلة فيما يتعلق بتطبيق الويب الذي أعمل عليه ولست متأكدًا بعد من أنه سيتم نشره.

يمكنك بدلاً من ذلك استخدام متصفح الملفات المدمج في متصفح الويب واستعادة محتوى الملف من الخادم الخاص بك إذا كنت تعمل مع ملفات أصغر.

أيضًا، بعض الإجراءات الأمنية التي يمكنك اتخاذها فيما يتعلق بالتطبيق الصغير الموقع هي:

  • التحقق من صحة أصل رمز التطبيق الصغير.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • التحقق من عنوان URL الأساسي الذي تم تشغيل التطبيق الصغير منه.

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false)
       return false;
    

في هذه الحالة (استخدام الإعدادات الافتراضية)، وكنت الصحيح، مدير أمن الافتراضية لا تسمح بالوصول إلى الملفات المحلية.

وسوف يكون على الارجح الى استخدام PrivilegedAction لقراءة أي شيء من القرص الصلب الخاص بالمستخدم. كما قالmmyers سيكون لديك لتوقيع الصغير الخاص بك أيضا.

وهكذا هو نعم، لقد فعلت إجابتك هذا قبل ذلك وأنا أعلم أنه يمكن القيام به.

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