संपादित करें: जावा 7 में एक बग के कारण 45 अपडेट 45 आपको अपनी मेनिफेस्ट फ़ाइल में विश्वसनीय-लाइब्रेरी नहीं जोड़नी चाहिए। बस नई विशेषता कॉलर-स्वीकार्य-कोडबेस जोड़ें। अधिक जानकारी के लिए यह प्रश्न देखें: Java applet manifest - Allow all Caller-Allowable-Codebase
जावा 7 अपडेट 21 अप्रैल 16 2013 को जारी किया गया था और हमारे एप्लेट ने इस चेतावनी संवाद को दिखाना शुरू कर दिया था।
रिलीज नोट्स के अनुसार: जेडीके 7u21 के रूप में, जावास्क्रिप्ट कोड जो एक विशेषाधिकार प्राप्त एप्लेट के भीतर कोड को कॉल करता है उसे मिश्रित कोड के रूप में माना जाता है और हस्ताक्षरित जेएआर फ़ाइलों को विश्वसनीय-पुस्तकालय विशेषता के साथ टैग नहीं किया जाता है।
इसे ठीक करने के लिए अपना मैनिफेस्ट संपादित करें।एमएफ फ़ाइल और इस तरह की एक लाइन जोड़ें:
Trusted-Library: true
हालांकि ऐसा करने से पहले आपको बहुत सावधान रहना चाहिए। यदि आपके हस्ताक्षरित एप्लेट को जावास्क्रिप्ट से बुलाया जा सकता है तो एक दुर्भावनापूर्ण उपयोगकर्ता संभावित रूप से आपके उपयोगकर्ताओं के कंप्यूटर पर हानिकारक चीजें कर सकता है।
अपने एप्लेट को सुरक्षित करने का एक त्वरित तरीका यह है कि इसे अन्य वेबसाइटों पर चलाने से रोका जाए। init()
विधि में कोड डालकर ऐसा करें जो getCodeBase().getHost()
पर देखता है और यदि यह आपकी साइट से मेल नहीं खाता है तो अपवाद फेंकता है।
जावा 7 अपडेट 25 उन साइटों को सीमित करने का एक और तरीका पेश करता है जहां आपका एप्लेट चलाया जा सकता है। आप इस तरह अपने मैनिफ़ेस्ट फ़ाइल में CODEBASE विशेषता सेट कर सकते हैं:
Codebase: test.example.com www.example.com
जावा 7 अद्यतन 45 LiveConnect व्यवस्था करने के लिए और अधिक परिवर्तन (जावास्क्रिप्ट करने वाली एप्लेट पुल) है कि एक और शीघ्र कारण हो सकता है का परिचय (16 अक्टूबर 2013 releated) । 7u45 परिवर्तन के बारे में यह लेख वार्ता: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
मूल रूप से आप भी संकेतों से बचने के लिए अपने मैनिफ़ेस्ट फ़ाइल के लिए निम्न में जोड़ना चाहेंगे:
Caller-Allowable-Codebase: test.example.com www.example.com
आप एक उत्पाद है कि एक एप्लेट शामिल बेच रहे हैं और आप नहीं जानते कि आप पर कौन से डोमेन तैनात किए जा सकते हैं * यहां पॉप्युलेट कर सकते हैं।
स्रोत
2013-04-18 17:14:09
भविष्य के संदर्भ के लिए इसे जोड़ना। जावा 1.6u20 में 1.6.0_1 9 में "class.getResource (" निर्देशिका/") के लिए मिश्रित कोड चेतावनी के रूप में प्रलेखित एक फिक्स शामिल है"। –
इसमें कुछ ऐसा संदेश होना चाहिए जो इंगित करता है कि कौन से जार या कक्षाएं "हस्ताक्षरित" मानी जाती हैं संदेश क्या है? सुरक्षा: Istrusted: शून्य झूठी ?? – simpatico
इसके लायक होने के लिए, यह समस्या 1.6.0_20 पर मशीन के लिए थी, फिर 1.6.0_24 के साथ चला गया, अब 1.6.0_25-b06 के लिए वापस आ गया है। क्या बिल्ली सूर्य है ?! दोनों जार एक ही समय में उसी प्रमाण के साथ हस्ताक्षर किए जाते हैं, मुझे यह नहीं मिलता है ... – jlarson