風險背景
Tomcat 預設以系統服務或 Administrator 權限運行,導致 Java 執行期擁有完整系統存取權。Servlet/JSP 可透過 `Runtime.exec()` 執行任意命令、存取任意檔案,構成嚴重安全隱患。
解決方案:建立專用低權限帳號
步驟 1:建立專用使用者
- 帳號名:`ITOMCAT_電腦名`
- 設定強密碼,勾選「密碼永不過期」
- 歸屬:標準使用者群組(非 Administrators)
步驟 2:設定 Tomcat 安裝目錄權限
| 目錄/檔案 | ITOMCAT_電腦名 權限 |
| CATALINA_HOME/TOMCAT_HOME 根目錄 | 讀、寫、執行 |
| webapps 目錄 | 唯讀 |
| 特定需寫入的 Web 應用目錄 | 單獨授予寫入權限 |
步驟 3:設定 Tomcat 服務登入身分
- 控制台 → 管理工具 → 服務
- 找到 Apache Tomcat 服務 → 內容 → 登入標籤
- 選「此帳號」,輸入專用帳號密碼
- 重啟電腦生效
命令列模式啟動(非服務模式)
- 執行 `RunAs /user:ITOMCAT_電腦名 CMD.exe`
- 輸入密碼,開啟新 DOS 視窗
- 切換至 `bin` 目錄,執行 `catalina run`
- 關閉原視窗
系統關鍵執行檔存取控制
限制以下程式僅 `system` 可執行,其他使用者無權限:
CMD.EXE NET.EXE ATTRIB.EXE AT.EXE NET1.EXE FTP.EXE
TELNET.EXE COMMAND.COM CACLS.EXE NETSTAT.EXE
核心原則
遵循最小權限原則:服務帳號僅擁有完成職責所需的最低權限,大幅降低被入侵後的破壞範圍。
- 上一篇文章: Java 正則表達式入門完整指南:語法、標記、實戰範例大全
- 下一篇文章: Hibernate 架構淺析:四層架構下的持久層最佳實踐
Copyright ©
程式碼之家 All Rights Reserved