Comments 28
Для тех, кто не хочет настраивать IIS через UI — заголовки можно прописать в файле web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-XSS-Protection" value="1; mode=block" />
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
<add name="X-Frame-Options" value="DENY" />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="Content-Security-Policy" value="default-src 'self';" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
UPD: при первом чтении не обратил внимания… Автор поста советует перезапускать IIS после изменения каждого заголовка. Не нужно этого делать! При настройках по умолчанию IIS автоматически перезапустит сайт после изменения его настроек. Причем независимо от того, через GUI оно делалось или просто новый web.config ему подложили.
Неправильное добавление заголовков может закрыть сайт для посетителей, поисковиков, разного рода систем аналитики посетителей и прочего, так что тут тоже нужно действовать с умом, а не руководствоваться всеобщей параноей.
Вы приводите надерганные вами из сети заголовки не понимая что они делают. Нельзя так. Вы сами не знаете и другим не объясняете, просто накопипастили, потому что надо повесить статьишку в копротивный бложик.
Ваша статейка может навредить, а помочь не может.
По-моему, в статье достаточно внятно написано, что делает IncludeSubDomains:
includeSubDomains Конфигурация распространяется на поддомены.
Если кто-то копипастит конфиги из статьи, не читая объяснений — проблема не в статье.
Например, при описании HSTS, как уже было сказано, можно очень легко заблокировать свой сайт не только себе, но и клиентам, которые успеют зайти на страницу и их браузер запомнит флаг HSTS. Так же в статье ошибочно трактуется флаг preload — это НЕ включает домен в preload лист, это только метка для подтверждения вашей заявки на включение в этот список. Для внесения в сам список необходимо отправить заявку.
Здесь задавал уже вопрос, но ответа не было. В консоли ошибка:
Refused to apply inline style because it violates the following Content Security Policy directive: «style-src 'self' 'unsafe-inline' 'nonce-BLABLABLAH'
Глупый вопрос — но nonce-то верный указан?
Полезная статья. Но ИМХО стоило способы изменения заголовков в разных серверах и движках собрать в один блок в конце, а не растягивать статью 10 одинаковыми картинами "модальное окно с введённым значением, OK и Cancel".
http://htmlbook.ru/html/a
Стыдно такое не знать
P.S. Я открыл этот ларчик. Оказывается в markdown надо было писать. Тогда заголовкам нормальные ID автоматом выдаются.
Как использовать HTTP заголовки для предупреждения уязвимостей