為什麼最新版本 Java 的安全性設定封鎖了 Java 應用程式?
本文適用於:
- Java 版本: 7.0, 8.0
症狀
從 Java 7 Update 51 開始,嘗試執行 Java 應用程式時會產生下列訊息
Java 應用程式已被您的安全性設定封鎖。
遺漏 Application-Name 資訊清單屬性
主要 jar 中遺漏必要的 Permissions 資訊清單屬性
原因
Java 已進一步增強了安全性,令使用者系統更不易於受到外部攻擊。從 Java 7 Update 51 開始,Java 不允許使用者執行未經簽署 (未簽署)、自行簽署 (不是由信任授權單位簽署) 或是遺漏權限屬性的應用程式。
執行應用程式所涉及的風險
未簽署的應用程式
預設會封鎖不含憑證的應用程式 (亦即未簽署的應用程式) 或遺漏應用程式「名稱」和「發行者」資訊的應用程式。執行此類的應用程式可能不安全且風險層次較高。
自行簽署的應用程式 (憑證不是來自信任授權單位)
預設會封鎖含自行簽署憑證的應用程式。此類型的應用程式風險層次最高,因為無法識別發行者且應用程式可能會取得存取電腦上個人資料的權限。
遺漏 Permission 屬性的 Jar 檔案
Permission 屬性會驗證應用程式要求是否符合開發人員指定的權限層次。如果沒有此屬性,攻擊者就可能重新建置以原始憑證簽署的應用程式,並以其他權限層次執行該應用程式。
解決方案
您目前執行之應用程式遭到封鎖的原因是因為應用程式不符合 Java 7 Update 51 所實行的安全性準則。
請聯絡此應用程式的開發人員或發行者,讓他們知道應用程式已被封鎖。您可以將下列連結提供給他們,這些連結提供在應用程式程式碼中實行安全做法的相關資訊。
解決方法
強烈建議您不要執行這些類型的應用程式。不過,如果您仍然想要執行這些應用程式,請先瞭解相關風險和影響之後再執行。
解決方法:您可以使用「例外網站清單」功能來執行被安全性設定封鎖的應用程式。將被封鎖的應用程式 URL 新增至「例外網站清單」,讓這些應用程式可以在顯示某些警告之後執行。