原文链接:https://blog.csdn.net/xp_lx1/article/details/80676630
可以配置的参数有两个:
X-Frame-Options 响应头有三个可选的值:
DENY:页面不能被嵌入到任何iframe或frame中;
SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中;
ALLOW-FROM:页面允许frame或frame加载。
在服务端设置的方式如下:
Java代码:
response.addHeader("x-frame-options","SAMEORIGIN");
Nginx配置:
add_header X-Frame-Options SAMEORIGIN
Apache配置:
Header always append X-Frame-Options SAMEORIGIN
一般选第二个参数就可以了。
【步骤】
1.在src目录下建一个包,命名为filter。在包里建类名为FrameTao。内容如下:
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FrameTao 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"); //调用下一个过滤器(这是过滤器工作原理,不用动) chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { } public void destroy() { } }
2.在web.xml文件下添加以下内容:
<!-- 设置Frame头,防止被嵌套 --> <filter> <filter-name>FrameFilter</filter-name> <filter-class>filter.FrameTao</filter-class> </filter> <filter-mapping> <filter-name>FrameFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.启动服务器。
打开火狐浏览器,打开你的此项目任一网页。
右键查看元素:
怎么样,是不是成功啦?
这样浏览器就明白,你的网页不允许被陌生人嵌套、操作了!