Помощь в добавлении includeSubDomains в заголовок Strict-Transport-Security

Клиент использовал полезный сканер безопасности и теперь считает, что заголовок Strict-Transport-Security должен включать параметр «includeSubdomains».

Я добавил оба этих пункта в app.yml:


  after_ssl:
    - replace:
        filename: /etc/nginx/conf.d/outlets/server/20-https.conf
        from: "max-age=31536000;"
        to:  "max-age=31536000; includeSubDomains;"
    - replace:
        filename: /etc/nginx/conf.d/outlets/discourse/20-https.conf
        from: "max-age=31536000;"
        to:  "max-age=31536000; includeSubDomains;"
- exec: sed -i "s/add_header Strict-Transport-Security 'max-age=31536000';/add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;/" /etc/nginx/conf.d/outlets/discourse/20-https.conf /etc/nginx/conf.d/outlets/server/20-https.conf

Ни один из вариантов не работает. Выполнение команды sed из второго блока внутри контейнера работает, и после перезапуска nginx результат соответствует ожидаемому.

Я не понимаю, почему это не срабатывает.

Кроме того, это ранее присутствовало в шаблоне, но, похоже, было удалено в 2014 году, однако в некоторых недавних публикациях встречаются заголовки, где указан includeSubdomains.

Я в тупике.

Хм… похоже, здесь вы не получаете ответа. Этот вопрос относится к Development или #installation:hosting? :thinking:

Ну, я переместил её туда, но первоначальная проблема заключается в том, что кто-то утверждал, будто отсутствие параметра includeSubDomains является уязвимостью безопасности.

Мне бы очень хотелось, чтобы кто-то, кто разбирается в вопросе и понимает важность наличия IncludeSubDomains в заголовке STS, прояснил ситуацию. Тогда я смогу сказать этому человеку, что сотни тысяч других сайтов не согласны с ним, и, возможно, скрипт, который кто-то запустил для поиска этих «уязвимостей», работает некорректно.

Так что, возможно, мне стоит переименовать эту тему в «Отсутствие includeSubDomains в заголовке STS считается вредным».

Я бы назвал это скорее выбором конфигурации.

Размещён ли форум на корневом домене или нет?

Я всегда говорю людям, что мы очень осторожны при установке заголовков, которые влияют на другие имена хостов в их домене, и если они хотят использовать HSTS для них, им следует установить соответствующие заголовки на этих хостах.

Единственная веская причина, которую я могу придумать, — это невозможность сделать это, например, когда форум размещён на корневом домене, а клиент не может управлять заголовками HSTS на других хостах, размещённых у внешних провайдеров, например, у них также есть hostedshopify.example.com. Тогда они обращаются к вам, потому что вы — путь наименьшего сопротивления :slight_smile:

Нет, не находится.

Кажется, я так и думал, хотя не мог сформулировать это вслух.

Спасибо. Я скажу им, что поскольку это не домен верхнего уровня, лучшей практикой является обеспечение каждым хостом собственных правил.

Огромное спасибо. Это очень большая помощь. По крайней мере, теперь я почти уверен, что понимаю.