2016-07-20 4 views
0

На моей странице я дал иерархия:Content Security

Page - http://179.15.31.103/path 

|- frame - //proxy.domain.training/path 

    |- frame - https://app.domain.training/path 

И внутренняя рама поставляется с данным заголовком

Content-Security-Policy:frame-ancestors app.domain.training proxy.domain.training domain.training *.domain.training 179.15.31.103 

выглядит как все это правильно, но я получил такую ​​ошибку в хроме (ошибка в ff тоже):

Отказано в отображении 'https://app.domain.training/path' в кадре, потому что предок нарушает следующий контент Securi ty Policy директива: "frame-ancestors app.domain.training proxy.domain.training domain.training * .domain.training 179.15.31.103".

Я думаю, что это может быть из-за https, но я не могу его проверить.

ответ

0

Предлагаю добавить схему URL-адресов к доменам в вашем заголовке Content-Security-Policy. Возможно, вам придется дважды указать домен, чтобы он охватывал как http, так и https, но он, похоже, решает проблему.

Я столкнулся с аналогичной проблемой; если родительская страница была загружена по простой http, а на iframed-странице служил заголовок CSP с включенным родительским доменом, но без схемы URL, и Firefox, и Chrome предоставили указанную вами ошибку.

Самый большой ключ я нашел, почему это происходит в Pale Moon (A Firefox вилка) Примечания к выпуску:

26.5.0 (2016-09-28) Исправления/Изменения:

Внедрено изменение спецификации CSP (политика безопасности контента); когда страница с CSP загружается через http, Pale Moon теперь интерпретирует директивы CSP , в том числе https-версии хостов, перечисленных в CSP , если схема (http/https) явно не указана. Это прерывается с CSP 1.0, который является более ограничительным и не позволяет использовать этот межпротокольный доступ, но соответствует CSP 2, где это разрешено.

https://www.palemoon.org/releasenotes-archived.shtml

Тем не менее, кажется, что Pale Moon 26.5.0 до сих пор ведет себя так же, как Firefox и Chrome.

Скотт Хелме также написал о блоге similar issue с Safari, но похоже, что теперь это разрешено.

Еще одна вещь, на которую нужно обратить внимание, - это то, что рамка страницы также служит X-Frame-Options. Я считаю, что Firefox и Safari являются единственными браузерами, которые поддерживают как этот заголовок, так и заголовок frame-ancestors CSP, и, конечно же, в случае Firefox X-Frame-Options, похоже, имеет приоритет. И с X-Frame-Options ALLOW-FROM вам разрешено указывать только один URI, поэтому вам может потребоваться изменить заголовки для разных браузеров в зависимости от ваших потребностей.

+0

Да, это выглядит правильно. В моем случае эта ошибка была исправлена ​​путем явного добавления протоколов _http_ и _https_ в заголовок CSP. – DimaIT

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