在 spring-boot 应用程序中启用 X-Frame-Options header(没有 spring 安全性)
enable X-Frame-Options header in spring-boot application (without spring security)
安全团队测试了我们的应用程序并发现了以下警告:
X-Frame-Options header is not included in the HTTP response to protect
against 'ClickJacking' attacks.
我们在应用程序中使用 spring 引导,但不使用 spring 安全。我们使用我们的自定义安全机制。
有没有办法将这个 header 添加到所有回复中?
您可以创建自定义过滤器并在其中设置 header:
public class XFrameFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest httpRequest,
HttpServletResponse httpResponse,
FilterChain filterChain) throws ServletException, IOException {
httpResponse.setHeader("X-FRAME-OPTIONS", "DENY");
filterChain.doFilter(httpRequest, httpResponse);
}
}
如果您已经设置了扩展 WebSecurityConfigurerAdapter 的安全配置
那么你只需要添加
http.headers().frameOptions().deny();
要么
http.headers().frameOptions().sameOrigin();
安全团队测试了我们的应用程序并发现了以下警告:
X-Frame-Options header is not included in the HTTP response to protect against 'ClickJacking' attacks.
我们在应用程序中使用 spring 引导,但不使用 spring 安全。我们使用我们的自定义安全机制。
有没有办法将这个 header 添加到所有回复中?
您可以创建自定义过滤器并在其中设置 header:
public class XFrameFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest httpRequest,
HttpServletResponse httpResponse,
FilterChain filterChain) throws ServletException, IOException {
httpResponse.setHeader("X-FRAME-OPTIONS", "DENY");
filterChain.doFilter(httpRequest, httpResponse);
}
}
如果您已经设置了扩展 WebSecurityConfigurerAdapter 的安全配置
那么你只需要添加
http.headers().frameOptions().deny(); 要么 http.headers().frameOptions().sameOrigin();