JSP在Debian上的安全配置指南
sudo apt update && sudo apt upgrade,及时安装Debian系统、Tomcat(或其他JSP服务器)、JDK的安全补丁,修复已知漏洞。md5sum或sha256sum比对官方提供的散列值,确保镜像完整性。tomcat)运行JSP应用,修改Tomcat服务配置(/etc/systemd/system/tomcat.service)中的User和Group字段为该用户,运行sudo systemctl daemon-reload生效。chown将JSP文件、配置文件(如/etc/tomcat9)、日志文件的所有权归属专用用户,用chmod限制访问权限(如JSP文件设为644,配置文件设为600,目录设为750)。ufw(推荐)或iptables限制入站流量,仅开放必要端口(HTTP:80、HTTPS:443、SSH:22),例如运行sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 22/tcp && sudo ufw enable。/etc/ssh/sshd_config中的PermitRootLogin no),启用密钥对认证(将公钥添加至~/.ssh/authorized_keys),修改默认SSH端口(如Port 2222),减少暴力破解风险。/etc/tomcat9/server.xml,禁用AJP协议(若无需使用),注释<Connector port="8009" protocol="AJP/1.3" .../>;/etc/tomcat9/tomcat-users.xml),移除不必要的角色(如manager-gui)或限制访问IP;web.xml配置安全约束,例如仅允许admin角色访问/admin/*路径,使用BASIC或FORM认证方式。<, >, ', ", &),防止SQL注入和XSS攻击。<c:out>标签或EL表达式(${fn:escapeXml(param.input)})对输出内容进行HTML编码,避免浏览器解析恶意脚本。PreparedStatement代替拼接SQL语句,例如SELECT * FROM users WHERE id = ?,防止SQL注入。web.xml设置会话超时(如<session-timeout>30</session-timeout>,单位:分钟);HttpOnly和Secure标志(在server.xml中配置<CookieProcessor sameSiteCookies="strict"/>或通过应用代码设置),防止会话劫持和XSS窃取cookie。Runtime.getRuntime().exec()等系统命令执行函数,若需执行命令,使用ProcessBuilder并限制命令参数。server.xml添加<Connector>元素,例如:<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/etc/letsencrypt/live/yourdomain.com/keystore.jks"
certificateKeystorePassword="yourpassword"
type="RSA" />
</SSLHostConfig>
</Connector>
重定向HTTP到HTTPS(在web.xml中添加<security-constraint>强制HTTPS)。logging.properties文件,设置org.apache.catalina.level=FINE记录请求详情,但避免记录敏感信息(如密码);同时开启应用日志(如Log4j或SLF4J),记录用户操作和业务逻辑。grep、awk等工具分析/var/log/tomcat9/catalina.out、/var/log/auth.log等日志,查找异常行为(如频繁登录失败、大量404请求);部署auditd监控关键文件(如/etc/tomcat9、/var/lib/tomcat9)的修改。<% ... %>)。