Windows Azure iframe域提供程序= X-Frame-Options问题

时间:2013-11-14 11:45:57

标签: iframe azure dns x-frame-options

我的自定义域名有问题。我的域名提供商将重定向网站放在iframe中。

<HTML><HEAD><TITLE></TITLE></HEAD>
<FRAMESET ROWS="*"><FRAME NAME=997 NORESIZE SRC="xxx. azurewebsites .net/">
<NOFRAMES><BODY><A HREF="xxx. azurewebsites .net/">click here</A></BODY></NOFRAMES>        </FRAMESET></HTML>

目前我正在使用azurewebsites托管,当我通过自定义域访问我的网站时,我不能使用除家庭控制器之外的任何操作。

问题在于x-frame-options标题,例如:

拒绝在框架中显示'',因为它将'X-Frame-Options'设置为'SAMEORIGIN'。

这种行为有没有解决方法?或者这是我的域名提供商的问题?

最好的问候。

1 个答案:

答案 0 :(得分:4)

我花了几天时间(对我来说很多时间)来解决这个问题,但最后我找到了一些解决方法。

说实话,我已经阅读了很多关于x-frame-problem,它的属性(Deny,SameOrigin,AllowAll,AllowFor等)的文章,我还没有找到任何可靠的解决方案来解决这个问题。我当然会记住点击劫持和跨站点问题的问题,但是,我知道我的提议并不完全正确和安全,因为它从请求中删除了标题的值。

所以就是这样,在Global.asax.cs:

namespace xxxx
{
    public class MvcApplication : HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

        private void Application_EndRequest(object sender, EventArgs e)
        {
            Response.Headers["X-FRAME-OPTIONS"] = string.Empty;
        }
    }
}

总结一下,我必须承认几件事:

Chrome浏览器不支持AllowFor属性也不支持AllowAll。它只理解Deny和SameOrigin属性,另一方面Internet Explorer处理AllowAll属性。 FireFox的行为类似于Chrome。

此外,IIS或Windows Azure主机会自动将此标头添加到使用SameOrigin属性的响应中。 (与Somme.com主持人相同)。

在我的情况下(和其他人一样,我注意到http:// www.windows- azure.net / x-frame-options-header-is-not-changing-in-azure-web-role /)唯一的解决方案是从x-frame-options标头辞职。虽然在我看来,webbrowsers至少应该支持AllowFor atribute来克服这个问题。

谢谢和最诚挚的问候!

的Grzegorz