CSP: frame-ancestors
CSP: frame-ancestors
Директива HTTP Content-Security-Policy (CSP) frame-ancestors определяет допустимых родителей, которые могут встраивать страницу с помощью <frame>, <iframe>, <object>, <embed> или <applet>.
Установка этой директивы на 'none' аналогична X-Frame-Options: deny (которая также поддерживается в старых браузерах).
Примечание: frame-ancestors позволяет указать, какой родительский источник может встроить страницу. Это отличается от frame-src, которое позволяет указать, откуда можно загружать фреймы iframes на странице.
| Версия CSP | 2 |
|---|---|
| Тип директивы | Директива навигации |
default-src по умолчанию | Нет. Отсутствие настроек позволяет все. |
Эта директива не поддерживается в элементе <meta>. | |
Синтаксис
Для политики frame-ancestors можно задать один или несколько источников:
Content-Security-Policy: frame-ancestors <source>; Content-Security-Policy: frame-ancestors <space separated list of sources>;
Источники
<source> может быть одним из следующих:
Примечание: Синтаксис директивы frame-ancestors аналогичен списку источников других директив (например, default-src), но не допускает 'unsafe-eval' или 'unsafe-inline' и не использует default-src по умолчанию. Разрешены только указанные ниже источники:
- <host-source>
-
Доменные имена или IP-адреса, а также необязательная схема URL и/или номер порта, разделенные пробелами. Адрес сайта может включать необязательный ведущий символ подстановки (звездочка,
'*'), а вы можете использовать символ подстановки (опять же,'*') для номера порта, указывая, что все законные порты являются допустимыми для источника. Одиночные кавычки вокруг имени хоста недопустимы. Примеры:-
http://*.example.com: Соответствует всем попыткам загрузки с любого поддомена example.com с использованием схемыhttp:URL. -
mail.example.com:443: Соответствует всем попыткам доступа к порту 443 на mail.example.com. -
https://store.example.com: Соответствует всем попыткам доступа к store.example.com с использованиемhttps:.
Предупреждение: Если для
host-sourceне указана схема URL, а iframe загружается из URLhttps, URL страницы, загружающей iframe, также должен бытьhttps, в соответствии с разделом Соответствие URL выражению в источнике с учетом количества перенаправлений? спецификации CSP. -
- <scheme-source>
-
Схема, например
http:илиhttps:. Двоеточие обязательно, а сама схема не должна быть в кавычках. Также можно указывать схемы данных (не рекомендуется).-
data:Разрешает использованиеdata:URL в качестве источника контента. Это небезопасно; злоумышленник также может вставить произвольныеdata:URL. Используйте это с осторожностью и ни в коем случае не для скриптов. -
mediastream:Разрешает использованиеmediastream:URI в качестве источника контента. -
blob:Разрешает использованиеblob:URI в качестве источника контента. -
filesystem:Разрешает использованиеfilesystem:URI в качестве источника контента.
-
'self'-
Относится к источнику, с которого защищенный документ обслуживается, включая ту же схему URL и номер порта. Необходимо указать одиночные кавычки. Некоторые браузеры специально исключают
blobиfilesystemиз директив источника. Веб-сайтам, которым необходимо разрешить эти типы контента, следует указывать их с помощью атрибута Data. 'none'-
Относится к пустому набору; то есть ни один URL не соответствует. Одиночные кавычки обязательны.
Примеры
Content-Security-Policy: frame-ancestors 'none'; Content-Security-Policy: frame-ancestors 'self' https://www.example.org; Content-Security-Policy: frame-ancestors 'self' https://example.org https://example.com https://store.example.com;
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | |
frame-ancestors |
40 |
15 |
33
Перед Firefox 58,
frame-ancestors игнорируется в Content-Security-Policy-Report-Only. |
Нет |
26 |
10 |
Да |
Да |
33
Перед Firefox для Android 58,
frame-ancestors игнорируется в Content-Security-Policy-Report-Only. |
Да |
9.3 |
Да |
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors