X-Frame-Options
X-Frame-Options
Заголовок ответа X-Frame-Options HTTP позволяет указать, разрешено ли браузеру отображать страницу в <frame>, <iframe>, <embed> или <object>. Сайты могут использовать это, чтобы избежать атак click-jacking, гарантируя, что их содержимое не встраивается на другие сайты.
Дополнительная безопасность предоставляется только если пользователь, получающий доступ к документу, использует браузер, поддерживающий X-Frame-Options.
Примечание: Заголовок HTTP Content-Security-Policy имеет директиву frame-ancestors, которая устаревает этот заголовок для поддерживающих его браузеров.
| Тип заголовка | Заголовок ответа |
|---|---|
| Запрещённое имя заголовка | нет |
Синтаксис
Существует две возможные директивы для X-Frame-Options:
X-Frame-Options: DENY X-Frame-Options: SAMEORIGIN
Директивы
Если вы указываете DENY, не только попытки браузера загрузить страницу в фрейм со стороннего сайта будут неудачными, но и попытки с того же сайта. С другой стороны, если вы указываете SAMEORIGIN, вы всё ещё можете использовать страницу в фрейме, если сайт, вставляющий её в фрейм, тот же, что и сайт, который подаёт страницу.
DENY-
Страница не может быть отображена во фрейме, независимо от сайта, пытающегося это сделать.
SAMEORIGIN-
Страница может быть отображена только если все предковые фреймы имеют тот же домен, что и сама страница.
-
ALLOW-FROM=urlУстаревший -
Это устаревшая директива, которая больше не работает в современных браузерах. (Использование её даст тот же результат, что и отсутствие заголовка.) Не используйте её. Заголовок HTTP
Content-Security-Policyимеет директивуframe-ancestors, которую вы можете использовать вместо этого.
Примеры
Примечание: Установка X-Frame-Options внутри элемента <meta> бесполезна! Например, <meta http-equiv="X-Frame-Options" content="deny"> не имеет эффекта. Не используйте это! X-Frame-Options работает только при установке через заголовок HTTP, как в примерах ниже.
Настройка Apache
Чтобы настроить Apache на отправку заголовка X-Frame-Options для всех страниц, добавьте это в конфигурацию вашего сайта:
Header always set X-Frame-Options "SAMEORIGIN"
Чтобы настроить Apache на установку заголовка X-Frame-Options DENY, добавьте это в конфигурацию вашего сайта:
Header set X-Frame-Options "DENY"
Настройка Nginx
Чтобы настроить Nginx на отправку заголовка X-Frame-Options заголовка, добавьте это в конфигурацию http, server или location:
add_header X-Frame-Options SAMEORIGIN always;
Настройка IIS
Чтобы настроить IIS на отправку заголовка X-Frame-Options заголовка, добавьте это в файл вашего сайта Web.config:
<system.webServer> … <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> … </system.webServer>
Или ознакомьтесь со статьёй поддержки Microsoft о настройке этой конфигурации с помощью интерфейса IIS Manager.
Настройка HAProxy
Чтобы настроить HAProxy на отправку заголовка X-Frame-Options заголовка, добавьте это в конфигурацию front-end, listen или backend:
rspadd X-Frame-Options:\ SAMEORIGIN
В альтернативном варианте, в более новых версиях:
http-response set-header X-Frame-Options SAMEORIGIN
Настройка Express
Чтобы настроить Express на отправку заголовка X-Frame-Options заголовка, вы можете использовать helmet, который использует frameguard для установки заголовка. Добавьте это в вашу конфигурацию сервера:
const helmet = require('helmet'); const app = express(); app.use(helmet.frameguard({ action: 'SAMEORIGIN' }));
Альтернативно, вы можете использовать frameguard напрямую:
const frameguard = require('frameguard') app.use(frameguard({ action: 'SAMEORIGIN' }))
Спецификации
| Спецификация |
|---|
| Стандарт HTML # the-x-frame-options-header |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
ALLOW-FROM |
Нет |
12-79 |
18-70 |
8 |
Нет |
Нет |
Нет |
Нет |
18 |
Нет |
Нет |
Нет |
SAMEORIGIN |
Да
Начиная с Chrome 61, это применяется ко всем предковым фреймам.
|
12 |
Да
Начиная с Firefox 59, это применяется ко всем предковым фреймам.
|
8 |
Да
Начиная с Opera 48, это применяется ко всем предковым фреймам.
|
Да |
Да
Начиная с Chrome 61, это применяется ко всем предковым фреймам.
|
Да
Начиная с Chrome 61, это применяется ко всем предковым фреймам.
|
Да
Начиная с Firefox 59, это применяется ко всем предковым фреймам.
|
Да
Начиная с Opera 48, это применяется ко всем предковым фреймам.
|
Нет |
Да |
X-Frame-Options |
4 |
12 |
4 |
8 |
10.5 |
4 |
Да |
Да |
Да |
Да |
Да |
Да |
См. также
© 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/X-Frame-Options