CentOS環境下JSP應用安全保障需從系統加固、應用層防護、攻擊防范、服務器配置及監控審計等多維度綜合實施,以下是具體關鍵措施:
賬戶與權限管理
/etc/passwd
文件排查并鎖定/刪除無用的超級用戶賬戶,減少潛在攻擊入口。/etc/login.defs
文件,設置密碼復雜度(包含大小寫字母、數字、特殊字符)、長度≥10位及定期過期(如90天)。chattr +i
命令給/etc/passwd
、/etc/shadow
、/etc/group
等文件添加不可更改屬性,防止未授權修改。su
命令使用:編輯/etc/pam.d/su
文件,僅允許wheel
組用戶通過su
切換至root,降低權限提升風險。系統更新與補丁管理
yum update
命令更新CentOS系統內核及軟件包,優先修復高危漏洞(如OpenSSL、Glibc等)。輸入驗證與過濾
String.matches()
)檢查數據格式(如郵箱、手機號),拒絕非法字符(如<
、>
、'
、"
)。eval()
、Runtime.getRuntime().exec()
等可能執行動態代碼的函數,防止代碼注入。安全會話管理
web.xml
中配置<session-timeout>
(如30分鐘),超時后自動銷毀會話;對不活動會話定期注銷(如通過HttpSession.setMaxInactiveInterval()
)。Secure
(僅通過HTTPS傳輸),防止會話ID被竊取。輸出編碼防護
<c:out>
標簽(自動進行HTML實體編碼)或ESAPI.encodeForHTML()
函數,防止跨站腳本(XSS)攻擊(如將<script>
轉為<script>
)。SQL注入
PreparedStatement
)替代字符串拼接:將用戶輸入作為參數傳遞,而非直接嵌入SQL語句(如SELECT * FROM users WHERE username = ?
),徹底杜絕SQL注入漏洞。SELECT
、INSERT
等必要權限,避免攻擊者通過注入獲取管理員權限。跨站腳本(XSS)
<
、>
),輸出時進行HTML編碼(如使用<c:out>
)。web.xml
中添加<content-security-policy>
,限制腳本來源(如僅允許本站腳本),增強瀏覽器端防護。文件包含漏洞
..
、/
等特殊字符;使用ServletContext.getResourceAsStream()
加載資源,而非直接拼接路徑。文件上傳漏洞
jpg
、png
)、文檔(pdf
)等安全格式,通過MultipartFile.getContentType()
校驗。UUID.randomUUID().toString()
),避免惡意文件名(如shell.jsp
)。/var/www/uploads
),防止直接通過URL訪問。防火墻配置
firewalld
或iptables
限制訪問:僅開放必要端口(如HTTP的80端口、HTTPS的443端口、SSH的22端口),拒絕其他端口的外部連接。/etc/ssh/sshd_config
中的PermitRootLogin no
),使用密鑰認證替代密碼認證,降低SSH爆破風險。HTTPS加密
server.xml
或nginx.conf
),強制客戶端使用https://
訪問,防止中間人攻擊(如數據竊取、篡改)。日志管理
logging.properties
(如org.apache.catalina.level=FINE
)和系統日志(/var/log/messages
),記錄訪問日志(IP、URL、時間)、錯誤日志(異常堆棧)。grep
、awk
等工具分析日志,檢測異常行為(如頻繁的登錄失敗、大量404
錯誤、可疑的文件上傳)。入侵檢測與預防
fail2ban
監控日志,自動封禁頻繁攻擊的IP地址(如SSH爆破、SQL注入嘗試);或使用Snort等工具實時檢測入侵行為。最小權限運行
tomcat
):將Tomcat安裝目錄及文件的所屬用戶設為tomcat
(chown -R tomcat:tomcat /opt/tomcat
),并以該用戶身份啟動Tomcat(./startup.sh
),避免使用root運行。禁用不必要的組件
conf/server.xml
:關閉默認的AJP端口(若無需與Apache集成),注釋<Connector port="8009" protocol="AJP/1.3">
。webapps
目錄下的docs
、examples
、manager
等示例應用,減少攻擊面。配置安全約束
web.xml
中添加安全約束:限制敏感目錄(如/WEB-INF
、/META-INF
)的訪問(<auth-constraint>
),僅允許授權用戶訪問;啟用CSRF防護(如通過<csrf-filter>
)。通過以上措施的綜合實施,可顯著提升CentOS環境下JSP應用的安全性,有效防范常見的Web攻擊及系統漏洞。安全是一個持續過程,需定期進行安全評估(如滲透測試)及策略調整,以應對新的威脅。