Debian 上修复 JSP 应用安全漏洞的实操指南
一 加固流程与优先级
二 常见漏洞与修复要点
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:out value="${param.name}" escapeXml="true"/>
response.setHeader("Set-Cookie", "JSESSIONID=" + sessionId + "; Path=/; HttpOnly; Secure; SameSite=Strict");
String sql = "SELECT id FROM users WHERE username = ? AND active = true";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
if (authService.login(username, password)) { /* 成功 */ }
else { /* 记录失败次数,超过阈值锁定 */ }
三 Debian 与中间件配置加固
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("X-Frame-Options", "DENY");
response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("Strict-Transport-Security", "max-age=63072000; includeSubDomains; preload");
response.setHeader("Content-Security-Policy", "default-src 'self'; script-src 'self' 'unsafe-inline'");
chain.doFilter(req, res);
}
四 快速排查与验证清单