HTTP 配置响应头部 X-Frame-Options

目标服务器没有返回一个X-Frame-Options头。

攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。

添加X-frame-options响应头。

赋值有如下三种:

(1)DENY:不能被嵌入到任何iframe或frame中。

(2)SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。

(3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。

我用的是拦截器

import javax.servlet.*;
import java.io.IOException;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 拦截器-配置响应头部 X-Frame-Options
 * @author potato
 * @date 2021/9/8 11:04
 */
@WebFilter(filterName = "frameFilter", urlPatterns = "/*")
public class FrameConfig implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        //必须
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        //实际设置
        response.setHeader("X-Frame-Options", "SAMEORIGIN");
//        response.setHeader("X-Frame-Options", "DENY");
        //调用下一个过滤器(这是过滤器工作原理,不用动)
        chain.doFilter(request, response);
    }

    public void init(FilterConfig config) throws ServletException {
    }

    public void destroy() {

    }
}

个人日常积累,仅供参考

你可能感兴趣的:(java,问题,http,spring,http)