Spec-Zone.ru › HTTP

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
Да
Да
Да
Да
Да
Да

См. также

  • Content-Security-Policy директива frame-ancestors
  • Защита от ClickJacking - IEБлог
  • Борьба с ClickJacking с помощью X-Frame-Options - IEInternals

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API