2013年10月18日 星期五

ASP.NET MVC 5 預設會設定 X-Frame-Options 為 SAMEORIGIN

如標題。

X-Frame-Options 是一個新的瀏覽器特色。請參考http://tools.ietf.org/html/draft-ietf-websec-x-frame-options-10

MVC 5 在 final 時,看來加上了這個預設選項。因此使用 F12 開發工具時,可以看到 MVC 5的網頁會多出 X-Frame-Options: 的 Header

image

VS2013 RC 時澴沒有這個事情呢。

而且,目前(2013-10-18) 網路上可參考的 ASP.NET MVC 5 文件並沒有說到這個事情。

偏偏,我就有這個需求,要讓我的網頁鑲在別人的網頁中。不得已,只好在 Global.axsx.cs 內加上這一段,解決這個困擾。

private void Application_EndRequest()
{
    Response.Headers.Remove("X-Frame-Options");
    Response.Headers["X-Frame-Options"] = "ALLOW-FROM http://aaa.test.domain/Main/";
}

其中,aaa.test.domain 就是我的另一個開發機器啦。

2014-02-06 Update:

後來找到更簡單的方法:

AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

Share with Facebook