Здравствуйте, проблема такая. Создаю фрейм
<iframe src="http://prolegkie-info.eversmi.com/" width="100%" height="100%"></iframe>
В консоли пишет вот такую ошибку.
Refused to display 'http://prolegkie-info.eversmi.com/544?page=full' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors http://webvisor.com".
В чём может быть проблема? Если в iframe подставить другой src прекрасно работает.
Этот сайт (который в параметре src) запрещает демонстрировать свои страницы в фреймах всем, чьи страницы не на http://webvisor.com. Браузер прямо пишет, что запрет вызван настройками Content Security Policy, а именно опцией frame-ancestors.
Фишка относится к Content Security Policy Level 2.
Ранее существовал аналогичный механизм в виде X-Frame-Options, но его вариация с "белым списком доменов" (ALLOW) широко так и не распространилась. А вот DENY и SAMEORIGIN поддерживаются куда чаще. Сейчас его используют больше из соображений совместимости.
А пришедший ему на замену CSP L2 явно требует игнорировать X-Frame-Options, если задан CSP с frame-ancestors. Так что X-Frame-Options ни при чём. В вашем браузере. Браузер постарше мог бы не понять заголовок CSP, но обратить внимание на полный запрет любого* встраивания через X-Frame-Options. В результате, правда, поведение несколько отличается: такой браузер заблокировал бы загрузку и в фрейме на webvisor.com.
Это выбор владельцев сайта в фрейме, который доносится через HTTP-заголовок ответа их сайта. Со своей стороны вы ничего не можете с ним сделать.
* Это если DENY. Если SAMEORIGIN, то действует запрет на встраивание везде, кроме страниц этого же самого сайта.
Данный сайт использует заголовок Content Security Policy
В котором используется директива frame-ancestors
Эта директива определяет допустимых родителей, которые могут встроить данный сайт используя <frame>, <iframe>, <object>, <embed> или <applet>.
В данном случае использовано значение: frame-ancestors http://webvisor.com;
Что разрешает встраивать сайт только webvisor.com
Проблема в специальных директивах в заголовках сайта.
X-Frame-Options:SAMEORIGIN
X-Frame-Options:DENY
Они запрещают данное действие.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей