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

ggg*_*ttt 3 dns iframe azure 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

这种行为有什么解决方案吗?还是我的域名提供商的问题?

此致。

ggg*_*ttt 5

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

老实说,我已经阅读了很多关于 x-frame-problem 及其属性(Deny、SameOrigin、AllowsAll、AllowsFor 等)的文章,但我还没有找到针对此类问题的任何可靠解决方案。我当然理解点击劫持和跨站点问题,但是,我知道我的提议并不完全正确和安全,因为它从请求中删除了标头的值。

就是这样,在 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

总而言之,我必须承认两件事:

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-changed-in-azure-web-role/)唯一的解决方案是退出 x-frame-options 标头。虽然在我看来网络浏览器至少应该支持 AllowFor 属性来克服这样的问题。

谢谢和最好的问候!

格泽戈尔茨