Я бы предложил добавить схемы URL к доменам в заголовке Content-Security-Policy
. Возможно, вам придется указать домен дважды, чтобы охватить как http
, так и https
, но это, похоже, решает проблему.
Я столкнулся с аналогичной проблемой; если родительская страница обслуживалась по простому http
, а страница iframe обслуживала заголовок CSP с включенным родительским доменом, но без схемы URL, и Firefox, и Chrome выдавали указанную вами ошибку.
Самая большая подсказка, которую я нашел относительно того, почему это происходит, находится в примечаниях к выпуску Pale Moon (форк Firefox):
26.5.0 (28 сентября 2016 г.) Исправления/изменения:
Реализовано критическое изменение спецификации 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.
Скотт Хелме также написал в блоге об похожей проблеме с Safari, но похоже теперь это решено.
Еще одна вещь, на которую следует обратить внимание, — это если страница во фрейме также содержит заголовок X-Frame-Options
. Я считаю, что Firefox и Safari — единственные браузеры, которые поддерживают как этот заголовок, так и заголовок CSP frame-ancestors
, и, конечно, в случае с Firefox X-Frame-Options
имеет приоритет. А с X-Frame-Options ALLOW-FROM
вам разрешено указывать только один URI, поэтому вам, возможно, придется взглянуть на различные заголовки для разных браузеров в зависимости от ваших потребностей.
person
Jimadine
schedule
25.11.2016