Менеджер заголовков HTTP в Joomla 4

  1. Вступление
    1. Как использовать новое управление заголовками HTTP в Joomla 4.0
  2. Плагин Joomla 4.0
    1. Система - Заголовки HTTP (plg_system_httpheaders)
    2. Конфигурация плагина
    3. Конфигурация строгой транспортной безопасности (HSTS - Strict-Transport-Security)
  3. Компонент Joomla 4.0
    1. Политика безопасности контента (Content Security Policy) (com_csp)
      1. Отчеты (Reports)
      2. Настройки (Options)
  4. Примечания
  5. Разработчикам расширений для CMS Joomla 4.0
    1. Важные примечания для разработчиков расширений
    2. Добавление JavaScript с помощью API Joomla
    3. Добавление CSS с помощью API Joomla


Вступление

Как использовать новое управление заголовками HTTP в Joomla 4.0

Начиная с Joomla 4.0, Joomla представила систему управления заголовками HTTP. Эта система предназначена для того, чтобы помочь владельцам сайтов настроить заголовки безопасности HTTP из новой админки Joomla 4.

В этом руководстве вы найдете информацию о том, как настроить эту новую систему на своем сайте.

Плагин Joomla 4.0

Система - Заголовки HTTP (plg_system_httpheaders)

Перейдите в раздел Система Плагины Системные заголовки HTTP (System Plugins System - HTTP Headers), чтобы получить доступ к конфигурации плагина.

Конфигурация плагина

На этой странице вы можете включить запись заголовков в файлы конфигурации сервера (.htaccess и web.config) и настроить, включение следующих заголовков http

Используя форму "Принудительный заголовок" (Force Header), вы также можете принудительно ввести следующие заголовки со значениями:

вы можете включить запись заголовков в файлы конфигурации сервера (.htaccess и web.config)

Конфигурация строгой транспортной безопасности (HSTS - Strict-Transport-Security)

На этой странице вы можете включить заголовок Строгой транспортной безопасности (HSTS - Strict-Transport-Security), а также настроить максимальное значение возраста, следует ли включать поддомены и хотите ли вы быть добавлены в список предварительной загрузки (Preload List) браузеров.

Конфигурация строгой транспортной безопасности (HSTS - Strict-Transport-Security)

Компонент Joomla 4.0

Политика безопасности контента (Content Security Policy) (com_csp)

Перейдите в раздел Система Политика безопасности содержимого (System Content Security Policy), чтобы получить доступ к панели мониторинга Отчетов о политике безопасности содержимого.

Отчеты (Reports)

На этом экране Администратор CMS Joomla 4 имеет общий обзор собранных отчетов о Политике безопасности контента и имеет возможность просматривать, публиковать, отменять публикацию и удалять предлагаемые правила управления Политикой безопасности контента.

Администратор CMS Joomla 4 имеет возможность просматривать, публиковать, отменять публикацию и удалять предлагаемые правила управления Политикой безопасности контента

Чтобы узнать больше, пожалуйста, ознакомьтесь с разделом: Интерфейс политики безопасности контента

Настройки (Options)

На этом экране вы можете настроить параметры компонента CMS Joomla 4, такие как разрешения и, в частности, параметры Политики безопасности содержимого, включая различные режимы и то, находятся ли заголовки в режиме только для чтения.

Параметры политики безопасности контента CMS Joomla 4

Чтобы узнать больше, пожалуйста, ознакомьтесь с разделом: Параметры политики безопасности контента

Примечания

Когда вы настроили некоторые заголовки безопасности HTTP непосредственно на сервере, наши инструменты могут создавать двойные записи.

Проверьте вывод ваших HTTP-заголовков после настройки в консоли браузера. В Google Chrome: Inspect > Network > the output under Headers. Вы можете отключить заголовки, которые вызывают двойные записи. Также проверьте консоль вашего браузера на наличие возможных ошибок.

Разработчикам расширений для CMS Joomla 4.0

Как вы, возможно, знаете, большое преимущество безопасности в отношении Политики безопасности контента возникает, когда мы можем использовать заголовок для блокировки всех встроенных JavaScript и встроенных CSS, влияющих, например, на обработчики событий JavaScript с помощью атрибутов HTML. Таким образом, с включенной защитой браузера мы заблокируем использование встроенного JavaScript и встроенного CSS также для ваших расширений. Эта защита не включена по умолчанию, но может быть включена вашими пользователями.

Для Joomla версии 4.0 рекомендуется запустить интерфейс вашего расширения с включенной строгой политикой безопасности содержимого. Для совместимости с 4.1 рекомендуется, чтобы это также применялось к вашему бэкэнду.

Мы знаем, что по-прежнему требуется встроенный JavaScript и CSS, по этой причине мы внедрили поддержку nonce и hash в наши API-интерфейсы документов, когда вы их используете, ядро Joomla будет следить за тем, чтобы они были занесены в белый список, но мы все равно будем блокировать любые вредоносные программы для защиты наших сайтов.

Важные примечания для разработчиков расширений

Начиная Joomla 4.0 Политика безопасности контента:

  • поставляется ядром;
  • отключена по умолчанию;
  • может быть включена вашими пользователями;
  • настоятельно рекомендуется, чтобы ваш интерфейс расширения работал по Joomla версии 4.0 с включенной политикой безопасности контента;
  • рекомендуется, чтобы ваш сервер расширения работал по Joomla версии 4.1 с включенной политикой безопасности контента.

При включенной строгой политике безопасности контента будут заблокированы следующие функции:

  • выполнение JavaScript через обработчики событий в HTML (onXXX обработчики, такие как onClick и подобные);
  • исполненный на странице код JavaScript не передается странице по Document API;
  • выполнение JavaScript-кода вводится в API модели DOM, такие как eval();
  • использование встроенных в страницы CSS не перешли на страницу по Document API;
  • использование встроенных CSS правил использования HTML стиля атрибутов.

Чтобы ваши расширения работали даже при включенной строгой политике безопасности контента (Content Security Policy), самый простой способ-использовать Document API для применения встроенного JavaScript и CSS, пожалуйста, ознакомьтесь с примерами ниже.

Добавление JavaScript с помощью API Joomla

use Joomla\CMS\Factory;

/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = Factory::getApplication()->getDocument()->getWebAssetManager();

// Add JavaScript from URL
$wa->registerAndUseScript('com_example.sample', 'https://example.org/sample.js', [], ['defer' => true]);

// Add inline JavaScript
$wa->addInlineScript('
    document.addEventListener("DOMContentLoaded", function(event) {
        alert("An inline JavaScript Declaration");
    });
');

Добавление CSS с помощью API Joomla

use Joomla\CMS\Factory;

/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = Factory::getApplication()->getDocument()->getWebAssetManager();

// Add Style from URL
$wa->registerAndUseStyle('com_example.sample', 'https://example.org/sample.css');

// Add inline Style
$wa->addInlineStyle('
	body {
		background: #00ff00;
		color: rgb(0,0,255);
	}
');

Более подробную информацию можно найти здесь: Добавление JavaScript и CSS на страницу.

Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:Http_Header_Management

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню