Debian上JSP安全防护实操指南
一 基础环境加固
二 传输加密与访问控制
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/etc/letsencrypt/live/your_domain.com/fullchain.pem"
certificateKeystorePassword="your_keystore_password"
type="RSA" />
</SSLHostConfig>
</Connector>
重启Tomcat后通过**https://your_domain:8443/**访问。三 容器与应用身份认证授权
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/protected.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role><role-name>user</role-name></security-role>
登录表单使用j_security_check动作;在Servlet中用request.getUserPrincipal()获取主体,基于角色做授权判断。四 常见漏洞防护要点
五 部署与运维检查清单
| 检查项 | 操作要点 |
|---|---|
| 运行用户与权限 | Tomcat以非root专用用户运行;目录权限最小化 |
| 端口与防火墙 | 仅开放8080/8443;管理口限制来源IP |
| HTTPS/TLS | 配置8443并强制HTTPS;证书自动续期 |
| 认证与授权 | 删除默认账户;使用web.xml声明式安全与j_security_check |
| 输入校验与输出编码 | 全站输入白名单;JSP用**<c:out>或EL**安全输出 |
| SQL安全 | 全量预编译;禁止拼接;参数校验与长度限制 |
| 会话安全 | HttpOnly/Secure;登录后更换JSESSIONID;合理超时 |
| 日志与监控 | 收集catalina.out与访问日志;异常访问与错误告警 |
| 依赖与补丁 | 及时更新Debian/Tomcat/JDK与第三方库 |
| 备份与演练 | 定期备份配置/应用/证书;演练回滚与故障恢复 |
以上步骤覆盖了从系统、容器到应用层的纵深防御要点,按此清单实施可显著提升JSP在Debian上的安全性与可运维性。