2013-11-14 3 views
2

У меня проблема с моим пользовательским доменным именем. Мой провайдер домена разместил веб-сайт переадресации внутри iframe.Windows Azure iframe domain provider = проблема с параметрами X-Frame

<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' в 'SAMEORIGIN'.

Есть ли какие-либо решения для такого поведения? Или это проблема моего провайдера домена?

С уважением.

ответ

4

Я провел пару дней (очень много времени для меня), чтобы решить эту проблему, но, наконец, я нашел некоторое обходное решение.

Чтобы быть честным, я прочитал много статей о проблеме x-frame, его атрибутах (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; 
     } 
    } 
} 

Подводя итог, я должен признать, пару вещей:

Chrome браузер не поддерживает AllowFor atribute ни 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-change-in-azure-web-role /) единственным решением является выход из строя из заголовка x-frame-options. Хотя мне кажется, что веб-браузеры должны хотя бы поддерживать атрибут AllowFor для решения этой проблемы.

Спасибо и с наилучшими пожеланиями!

Grzegorz

+1

Спасибо за вашу помощь - добавьте точно такую ​​же проблему, и ваше решение разобрало ее! – EdsonF

+0

Спасибо, что поделился - и решил для меня такую ​​же проблему. – Rowan

Смежные вопросы