2.15.6. Заголовки безпеки
На нашому сайті доступний інструмент, за допомогою якого можна перевіряти повернуті сайтом заголовки безпеки. Такі заголовки дуже впливають на безпеку як самого сайту, так і його відвідувачів, тому рекомендуємо додавати такі заголовки на своїх сайтах.
Опис
Увага!
- У статті наведені короткі описи заголовків і їх можливі значення. Повну інформацію можна отримати у відповідній документації.
- У деяких значеннях можуть бути присутніми вставки, замість яких потрібно підставляти свої дані, наприклад замість
<url>
слід вказувати адресу свого сайту у виглядіexample.com
. - Обов’язкові значення або дані виділені жирним шрифтом.
Найбільш популярні заголовки:
Заголовок | Допустимі значення | Опис |
---|---|---|
Важливі заголовки | ||
Strict-Transport-Security (HSTS) | Час в секундах | Дозволяє налаштувати тільки безпечне підключення до сайту по HTTPS. Додати даний заголовок можна в налаштуваннях сайту |
X-Frame-Options | DENY , SAMEORIGIN , ALLOW-FROM <url> | Дозволяє або забороняє відображати сторінку в якості (i )frame , embed , object |
X-Content-Type-Options | nosniff | Блокування запитів до файлів, якщо їх тип не збігається з типом даних, зазначених у заголовку Content-type |
Content-Security-Policy | default-src , <directives>, <values> | Політика безпеки, що надає можливість обмежувати або навпаки дозволяти завантаження даних з певних джерел. Через великий список доступних значень у даних надано посилання на документацію |
Referrer-Policy | no-referrer , no-referrer-when-downgrade , origin , origin-when-cross-origin , same-origin , strict-origin , strict-origin-when-cross-origin , unsafe-url | Вказує, які дані надавати в заголовку referrer про адреси, з яких було здійснено перехід. Якщо заголовок відсутній, браузери використовують значення за замовчуванням — strict-origin-when-cross-origin |
Permissions-Policy | <directive>, <allowlist> | Визначає, який функціонал браузера можна вмикати на сайті. Даний заголовок також може називатися Feature-Policy . Через великий список доступних значень у даних надано посилання на документацію |
Рекомендовані заголовки | ||
X-Permitted-Cross-Domain-Policies | none | Вказує на можливість кроссдоменних запитів Flash і PDF (Acrobat) |
Clear-Site-Data | * , cookie , cache , storage | Вказує на необхідність очищення браузером збережених даних (cookie, cache, storage) |
Cross-Origin-Embedder-Policy | unsafe-none , require-corp | Запобігає завантаження ресурсів, які не дають на те явну згоду |
Cross-Origin-Opener-Policy | unsafe-none , same-origin-allow-popups , same-origin | Описує доступність ресурсу, що відкривається, в рамках основного документа |
Cross-Origin-Resource-Policy | same-site , same-origin , cross-origin | Визначає поведінки браузера для блокування кроссдоменних запитів без приведення до помилки доступності поточного документа/ресурсу |
Додавання
.htaccess
Увага!
Даний спосіб не буде працювати для запитів до статичних файлів.У файл .htaccess, розміщений в кореневому каталозі сайту, можна додати такі директиви для формування заголовків, що віддаються сайтом:
Header set X-Frame-Options: DENY
Замість X-Frame-Options: DENY
вкажіть будь-який інший необхідний заголовок і його дані.
PHP
Увага!
Даний спосіб не буде працювати для запитів до статичних файлів або файлів, при зверненні до яких не викликається скрипт з налаштованою видачею заголовків.
У мові PHP є спеціальна функція header()
, яка використовується для додавання заголовків у відповідь сервера. Щоб додати будь-якої заголовок, вкажіть в необхідному скрипті, наприклад index.php
, приблизно такий рядок:
header('X-Frame-Options: DENY', false, 200);
Підставте необхідні дані, необов’язкові параметри можна не вказувати:
- Замість
X-Frame-Options: DENY
— вкажіть необхідний заголовок і його дані. - Другий параметр необов’язковий і вказує на необхідність заміни заголовка, якщо такий вже існує. Встановіть
false
, якщо потрібно створити кілька однакових заголовків, але з різними даними, абоtrue
, якщо потрібно замінити існуючі заголовки. - Третій параметр також необов’язковий і вказує на примусово встановлений код відповіді від сервера.
HTML
Увага!
Даний спосіб буде працювати тільки для сторінок і документів, де встановлюється описуваний метатег.У HTML існує спеціальний атрибут для метатегу, який перетворює його на повноцінний заголовок. Використання цього атрибуту можливе приблизно так:
<meta http-equiv="X-Frame-Options" content="DENY">
Замініть дані на необхідний заголовок і його значення:
- В атрибуті
http-equiv
вкажіть сам заголовок. - В атрибуті
content
вкажіть бажане значення заголовка.