原文鏈接: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.啟動服務器。
打開火狐瀏覽器,打開你的此項目任一網頁。
右鍵查看元素:
怎么樣,是不是成功啦?
這樣瀏覽器就明白,你的網頁不允許被陌生人嵌套、操作了!