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)、限制请求体大小(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窃取)和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等漏洞;定期进行渗透测试(可内部执行或聘请第三方安全团队),评估系统安全性并及时修复发现的问题;进行代码审查(尤其是新功能上线前),确保代码符合安全规范。