在 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();