Java 進壹步增強了安全性,從而減少用戶系統遭受的外部攻擊。從 Java 7 Update 51 開始,Java 不允許用戶運行未簽名、自簽名(未經過可信頒發機構簽名)或缺少權限屬性的應用程序。
運行應用程序涉及的風險
未簽名的應用程序
如果應用程序沒有證書(例如未簽名應用程序)或缺少應用程序名稱和發行者信息,默認情況下會被阻止。運行此類型的應用程序可能不安全並存在較高級別的風險。
自簽名應用程序(證書並非來自可信證書頒發機構)
帶有自簽名證書的應用程序默認情況下會被阻止。此類型的應用程序具有最高級別的風險,因為發行者未標識,並且可能會授予應用程序訪問您計算機上個人數據的權限。
不具有權限屬性的 Jar 文件
權限屬性驗證應用程序請求的是否為開發人員指定的權限級別。如果不存在此屬性,則攻擊者可能會通過重新部署使用原始證書簽名的應用程序並在不同權限級別運行此應用程序來對用戶加以攻擊。
解決方案
阻止您運行的應用程序是因為此應用程序不符合 Java 7 Update 51 中實施的安全準則。
與此應用程序的開發人員或發行者聯系並讓他們知道此應用程序被阻止。您可以向他們提供指向在應用程序代碼中實現安全實踐的相關信息的鏈接。
JAR 文件的安全清單屬性
Java SE 安全性文檔
Java 編程語言的安全編碼準則
解決方法
強烈建議不要運行這些類型的應用程序。但是,如果您仍要運行這些應用程序,請僅在您了解風險和影響之後運行。
作為解決方法,您可以使用“例外站點”列表功能運行被安全設置阻止的應用程序。通過將被阻止應用程序的 URL 添加到“例外站點”列表中可允許此應用程序運行並顯示壹些警告。