У меня есть приложение siteA.com, которое загружается в iframe внутри siteB.com.
Нет предупреждения, загрузка непосредственно siteA.com, но получение Нераспознанная директива Content-Security-Policy ‘frame-ancestors’ когда находится внутри iframe в siteB.com; это только в сафари.
Все эти изменения были внесены в siteA.com
Метатег без удачи
<meta http-equiv="Content-Security-Policy" content="frame-ancestors siteB.com">
Какие заголовки я должен добавить к siteA.com, чтобы разрешить использование предка-указателя Content-Security-Policy?
Тогда я попробовал в основном index.php добавив в голову:
header("Content-Security-Policy: frame-ancestors 'self' siteB.com;");
но все еще работает на сайте A, но не на сайте B.
Также добавлено в * .htaccess *
Header set Content-Security-Policy "frame-ancestors: siteB.com"
но ничего.
Так как проблема растет в Safari, попробовал также с
header("X-Frame-Options: ALLOW-FROM siteB.com");
но это даже дает ошибку.
Приятной особенностью является то, что он вообще не загружается ни в одном из других протестированных браузеров, если URL-адрес frame-ancestors не правильный.
Что я делаю неправильно?
Нераспознанная директива Content-Security-Policy ‘frame-ancestors’
Это ошибка на уровне браузера, вы не можете это исправить. Вы используете Safari 9 или старше? Safari поддерживает только frame-ancestors
начиная с Safari 10. Ошибка также просто означает, что браузер игнорирует то, что для него является недопустимой директивой, с которой он понятия не имеет, что делать. Это не должно негативно повлиять на ваш сайт за пределы того, что обычно происходит, если бы этой директивы не было. Не все ошибки консоли должны быть устранены.
При использовании таких вещей, как Content Security Policy, некоторые старые браузеры просто не будут поддерживать все функции. Вы все равно должны их реализовывать из-за концепции прогрессивного улучшения.
Обратите внимание, что Safari, по правде говоря, в основном новый IE с точки зрения отставания от поддержки стандартов, особенно старых версий. Не ожидайте поддержки передового уровня, но не бойтесь внедрять новые функции из-за этого. В отличие от IE сафари наверстывает упущенное, и эти недостающие функции не полностью разрушают сайты, как это было раньше. Это не только Safari, Firefox иногда получает вещи до Chrome и т. Д.
Других решений пока нет …