1. 程式人生 > >apache iis 使用HTTP 響應頭資訊中的 X-Frame-Options屬性

apache iis 使用HTTP 響應頭資訊中的 X-Frame-Options屬性

原文:https://www.jb51.net/article/109436.htm

方法三:使用HTTP 響應頭資訊中的 X-Frame-Options屬性

使用 X-Frame-Options 有三個可選的值:

DENY:瀏覽器拒絕當前頁面載入任何Frame頁面
SAMEORIGIN:frame頁面的地址只能為同源域名下的頁面
ALLOW-FROM:origin為允許frame載入的頁面地址

絕大部分瀏覽器支援:

 

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 4.1.249.1042 3.6.9(1.9.2.9) 8.0 10.5 4.0

 

配置 IIS

IIS6中通過HTTP頭設定即可

IIS7中可以通過web.config也可以通過類似上面的設定

配置 IIS 傳送 X-Frame-Options 響應頭,新增下面的配置到 Web.config 檔案中:

?

1

2

3

4

5

6

7

8

9

10

11

<system.webServer

>

 ...

 

 <httpProtocol>

  <customHeaders>

   <add name="X-Frame-Options" value="SAMEORIGIN" />

  </customHeaders>

 </httpProtocol>

 

 ...

</system.webServer>

圖文介面設定

配置 Apache
配置 Apache 在所有頁面上傳送 X-Frame-Options 響應頭,需要把下面這行新增到 ‘site' 的配置中:

?

1

Header always append X-Frame-Options SAMEORIGIN

配置 nginx
配置 nginx 傳送 X-Frame-Options 響應頭,把下面這行新增到 ‘http', ‘server' 或者 ‘location' 的配置中:

?

1

add_header X-Frame-Options SAMEORIGIN;

HAProxy配置

?

1

rspadd X-Frame-Options:\ SAMEORIGIN

tomcat 與X-Frame-Options

公司專案是隻用了tomcat作為web伺服器 ,網上搜的的內容好像並不符合我的要求。
本來的想法是在每個jsp頁面中加

?

1

2

3

<%

 response.addHeader("x-frame-options","SAMEORIGIN");

 %>

可後來想想這種方法太蠢,萬一過不了測試還要改過來。

於是又想到了一個方法,在專案原本的過濾器中加了如下程式碼

?

1

2

HttpServletResponse response = (HttpServletResponse) sResponse;

response.addHeader("x-frame-options","SAMEORIGIN");

貌似起了作用  等待客戶測試吧!

具體可以檢視:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header

結果

在 Firefox 嘗試載入 frame 的內容時,如果 X-Frame-Options 響應頭設定為禁止訪問了,那麼 Firefox 會用 about:blank 展現到 frame 中。也許從某種方面來講的話,展示為錯誤訊息會更好一點。

用虛擬主機的使用者怎麼辦呢

PHP和JSP等動態檔案更方便
改一下頭資訊
PHP程式碼:

 header(‘X-Frame-Options:SAMEORIGIN');

JSP程式碼:

response.setHeader(“X-Frame-Options”,”SAMEORIGIN”);

ASP程式碼:

<%Response.AddHeader "X-Frame-Options","SAMEORIGIN"%>

ASP.NET程式碼:

Response.AddHeader("X-Frame-Options", "Deny");

還是那句話如果確認你整個網站都不能被框架,可以直接設定web伺服器,增加X-Frame-Options響應頭。IIS如下圖所示,增加http頭,參考上面的iis6與iis7中的設定方法

瀏覽器對X-Frame-Options響應頭的支援如下

 

瀏覽器 版本支援
IE 8.0+
Firefox 3.6.9+
Opera 10.50+
Safari 4.0+
Chrome 4.1.249.1024+