В этом руководстве давайте обсудим различные заголовки безопасности HTTP и то, как включить эти заголовки для платформы AEM.

Заголовки являются частью спецификации HTTP, определяя метаданные сообщения как в HTTP-запросе, так и в ответе.

Заголовки безопасности - это заголовки ответов HTTP, которые определяют, следует ли активировать или деактивировать набор мер безопасности в веб-браузере.

Давайте посмотрим на некоторые из наиболее важных заголовков безопасности и способы их включения на платформе AEM.

Строгая транспортная безопасность

Заголовок ответа HTTP Strict-Transport-Security позволяет веб-сайту сообщать браузерам, что к нему следует обращаться только по протоколу HTTPS, а не по протоколу HTTP.

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

max-age = ‹expire-time› - время в секундах, в течение которого браузер должен запомнить, что доступ к сайту возможен только по протоколу HTTPS.

includeSubDomains - если этот параметр указан, это правило применяется также ко всем субдоменам сайта.

preload - этот параметр указывает, что сайт присутствует в глобальном списке сайтов, поддерживающих только HTTPS.

Это будет информировать посещающий веб-браузер о том, что текущий сайт (включая поддомены) поддерживает только HTTPS, и браузер должен получать к нему доступ через HTTPS в течение следующих 2 лет (63072000 секунд).

Перед реализацией этого заголовка вы должны убедиться, что все страницы вашего веб-сайта (включая страницы поддоменов) доступны через HTTPS, иначе они будут заблокированы браузером.

Заголовок должен быть включен с веб-сервера (Диспетчер), чтобы включить заголовок в Apache, используйте модуль mod_header и установите заголовок, как показано ниже, в файле виртуального хоста

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;preload"

Параметры X-Frame

Заголовок HTTP-ответа X-Frame-Options может использоваться, чтобы указать, следует ли разрешить браузеру отображать страницу в ‹frame›, ‹iframe›, ‹embed› или ‹object›. Сайты могут использовать это, чтобы избежать атак с использованием кликджекинга, гарантируя, что их контент не встраивается в другие сайты.

Параметры X-Frame: ОТКАЗ
Параметры X-Frame: SAMEORIGIN

ОТКАЗАТЬ - страница не может отображаться во фрейме, независимо от того, пытается ли это сделать сайт.

SAMEORIGIN
Страница может отображаться только во фрейме в том же источнике, что и сама страница.

Заголовок должен быть включен с веб-сервера (Диспетчер), чтобы включить заголовок в Apache, используйте модуль mod_header и установите заголовок, как показано ниже, в файле виртуального хоста

Header always append X-Frame-Options SAMEORIGIN

HTTP-заголовок Content-Security-Policy (CSP) имеет директиву frame-ancestors, которая переопределяет X-Frame-Options в современных браузерах.

См. Видео ниже для получения дополнительных сведений о параметрах X-Frame и предках кадров CSP.

Политика безопасности контента (CSP)

Content-Security-Policy - это имя заголовка HTTP-ответа, который современные браузеры используют для повышения безопасности документа. Заголовок Content-Security-Policy позволяет ограничить использование ресурсов, таких как JavaScript, CSS, или почти всего, что загружает браузер.

Политика безопасности контента (CSP) - это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая атаки с использованием межсайтовых сценариев (XSS) и инъекции данных.

Заголовок должен быть включен с веб-сервера (Диспетчер), чтобы включить заголовок в Apache, используйте модуль mod_header и установите заголовок, как показано ниже, в файле виртуального хоста

Header always set Content-Security-Policy "default-src 'self';script-src 'self' https://sub.mydomain.com; img-src 'self' https://www.example.com;frame-ancestors 'self' http://mydomain.com:8000"

Заголовок выше позволяет браузеру

загружать скрипты (script-src) только с того же домена и https://sub.mydomain.com

загружать изображения (img-src) из того же домена и https://www.example.com

разрешает только веб-страницы из текущего домена для iframe этой страницы

Обратитесь к указанному ниже URL-адресу для получения дополнительных сведений о CSP.

Параметры X-Content-Type

Заголовок X-Content-Type-Options предотвращает «сниффинг MIME», который на самом деле является функцией Internet Explorer и Google Chrome. Это позволяет браузеру сканировать или «нюхать» контент и отвечать в ответ на то, что может указывать заголовок.

Заголовки X-Content-Type-Options инструктируют браузеры установить тип контента в соответствии с инструкциями (убедитесь, что вы правильно установили типы контента) и никогда не определяют собственный тип.

Заголовок должен быть включен с веб-сервера (Диспетчер), чтобы включить заголовок в Apache, используйте модуль mod_header и установите заголовок, как показано ниже, в файле виртуального хоста

Header always set X-Content-Type-Options nosniff

Особенности-Политика

Заголовок безопасности HTTP сообщает современным браузерам, какие функции браузера разрешены, а какие запрещены. Политика функций позволяет веб-разработчикам выборочно включать, отключать и изменять поведение определенных API-интерфейсов и веб-функций в браузере. Политика функций позволяет вам контролировать, какие источники могут использовать какие функции как на странице верхнего уровня, так и во встроенных фреймах.

Заголовок должен быть включен с веб-сервера (Диспетчер), чтобы включить заголовок в Apache, используйте модуль mod_header и установите заголовок, как показано ниже, в файле виртуального хоста

Отключите API геолокации и камеры для всех контекстов.

Header always set Feature-Policy "geolocation 'none'; camera 'none'"

Включите API геолокации и камеры только для страниц из текущего домена и страниц из myexample1.com

Header always set Feature-Policy "geolocation 'self' https://myexample1.com; camera 'self' https://myexample1.com"

Обратитесь к указанному ниже URL-адресу для получения более подробной информации о Feature-Policy.

Это некоторые из критических заголовков безопасности HTTP, которые можно включить для защиты платформы AEM от атак безопасности.

Не стесняйтесь оставлять свои комментарии.