1. 系統與軟件更新
保持Debian系統、JDK、Tomcat(或其他應用服務器)及所有相關軟件包為最新版本,定期運行sudo apt update && sudo apt upgrade
修復已知安全漏洞,降低被攻擊的風險。
2. 防火墻與網絡安全配置
使用ufw
(Uncomplicated Firewall)或iptables
配置防火墻規則,僅開放必要的端口(如HTTP的80端口、HTTPS的443端口、SSH的22端口),拒絕所有未授權的入站連接;通過sudo ufw allow 'Apache Full'
(針對Apache)或sudo ufw allow 'Nginx Full'
(針對Nginx)快速開啟常用服務端口,并啟用防火墻sudo ufw enable
。
3. 用戶與權限管理
避免使用root賬戶進行日常操作,通過sudo useradd -m username && sudo usermod -aG sudo username
創建普通用戶并加入sudo組;強化密碼策略(要求包含字母、數字、特殊字符組合,定期更新),并為SSH服務配置密鑰對認證(ssh-keygen
生成密鑰,ssh-copy-id user@hostname
復制公鑰),禁用root遠程登錄(修改/etc/ssh/sshd_config
中的PermitRootLogin no
)。
4. JSP應用安全配置
<
、>
、'
、"
),防止SQL注入和XSS攻擊;<c:out value="${input}" escapeXml="true"/>
)或EL表達式進行輸出編碼,將特殊字符轉換為HTML實體,避免XSS攻擊;PreparedStatement
或ORM框架(如Hibernate)的預編譯語句,替代動態SQL拼接,防止SQL注入;Runtime.getRuntime().exec()
等危險函數,使用安全的Java庫(如Spring Security)。5. Web服務器安全加固
若使用Apache或Nginx作為前端服務器,需關閉目錄列表(Options -Indexes
)、限制請求體大?。?code>LimitRequestBody)、禁用不必要的模塊(如server-status
);配置HTTPS(通過Let’s Encrypt申請免費SSL證書,修改/etc/apache2/sites-available/default-ssl.conf
或/etc/nginx/sites-available/default
啟用SSL),強制客戶端使用HTTPS訪問(Redirect permanent / https://yourdomain.com/
)。
6. 會話與訪問控制
實施安全的會話管理:使用隨機生成的會話ID(Tomcat默認使用SecureRandom
),設置合理的會話超時時間(如<session-config><session-timeout>30</session-timeout></session-config>
),將會話cookie標記為HttpOnly
(防止XSS竊?。┖?code>Secure(僅通過HTTPS傳輸);采用角色基礎的訪問控制(RBAC),通過web.xml
或注解(如Spring的@PreAuthorize
)限制對敏感資源(如/admin
)的訪問。
7. 日志監控與審計
啟用詳細的系統日志(/var/log/syslog
)和應用日志(Tomcat的catalina.out
、應用自身的日志文件),使用auditd
監控可疑活動(如頻繁的登錄失敗、文件修改);定期審查日志(可使用grep
、awk
等工具),及時發現異常行為(如大量404錯誤、未授權訪問)。
8. 定期安全評估
使用自動化工具(如OWASP ZAP、Burp Suite)掃描JSP應用,檢測SQL注入、XSS、CSRF等漏洞;定期進行滲透測試(可內部執行或聘請第三方安全團隊),評估系統安全性并及時修復發現的問題;進行代碼審查(尤其是新功能上線前),確保代碼符合安全規范。