Политика безопасности

351
21 января 2017, 10:10

Здравствуйте, проблема такая. Создаю фрейм

<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 прекрасно работает.

Answer 1

Этот сайт (который в параметре 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, то действует запрет на встраивание везде, кроме страниц этого же самого сайта.

Answer 2

Данный сайт использует заголовок Content Security Policy

В котором используется директива frame-ancestors

Эта директива определяет допустимых родителей, которые могут встроить данный сайт используя <frame>, <iframe>, <object>, <embed> или <applet>.

В данном случае использовано значение: frame-ancestors http://webvisor.com;

Что разрешает встраивать сайт только webvisor.com

Answer 3

Проблема в специальных директивах в заголовках сайта.

X-Frame-Options:SAMEORIGIN

X-Frame-Options:DENY

Они запрещают данное действие.

READ ALSO
Как Рандомно генерировать фотографии? [требует правки]

Как Рандомно генерировать фотографии? [требует правки]

Здравствуйте Как Рандомно генерировать фотографии? через html javascript что бы нажать на кнопку оно генерировала фотографии из папки

331
Вопрос по отправке html-писем

Вопрос по отправке html-писем

ЗдравствуйтеЯ в html-письмах на уровне

290