平台無關性、網路移動性、**安全性**。Java 體系架構(原始碼 → 位元組碼 → 類別載入器 → 執行引擎 → 安全管理器)層層把關,構建纵深防禦。
ArrayIndexOutOfBoundsException,不可繞過。free/delete 破壞堆結構。transient 跳過敏感欄位;實作 Externalizable 完全掌控讀寫邏輯。java.lang.*)永遠由 Bootstrap 載入,防止惡意代碼偽造核心類別竊取特權。FilePermission、SocketPermission、RuntimePermission 等,屬性:類型、目標名稱、動作。File.read())。SecurityManager.checkRead(path)。ProtectionDomain。AccessControlException。keystore "mykeys";
grant signedBy "father" {
permission java.io.FilePermission "order.txt", "read";
};
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.io.FilePermission "order.txt", "read,write";
};
grant {
permission java.io.FilePermission "appversion.properties", "read,write";
};
java -Djava.security.manager -Djava.security.policy=my.policy MainClassSystem.setSecurityManager(new SecurityManager());注意: Bootstrap 載入的核心類別不受 SecurityManager 限制,這也是雙親委派保護核心類別的原因之一。
| API | 全名 | 核心功能 | 典型場景 |
|---|---|---|---|
| JCE | Java Cryptography Extension | 對稱/非對稱加密、金鑰管理、MAC、Cipher 流 | 資料加密、數位簽章、密碼儲存 |
| JSSE | Java Secure Socket Extension | SSL/TLS 協議實作、HTTPS、憑證驗證 | 安全通訊、Web 服務雙向認證 |
| JAAS | Java Authentication and Authorization Service | 主體認證、角色授權、LoginModule 可插拔 | 應用登入、單點登入、細粒度授權 |
Cipher:核心加解密引擎。Cipher.getInstance("AES/CBC/PKCS5Padding")。keytool 建立 Keystore(私鑰+憑證)與 Truststore(信任憑證)。SSLServerSocketFactory.createServerSocket(port)。SSLSocketFactory.createSocket(host, port)。Java 安全架構提供靈活、纵深、可配置的防護框架。開發者需:
安全非一勞永逸,而是架構、代碼、運維共同責任的持續過程。