Простые шаги по базовым заголовкам безопасности на сайте
Не хочу грузить теорией, просто по делу: какие заголовки реально надо ставить, чтобы не было совсем плохо. Первое — Content-Security-Policy, она блокирует всякий шлак типа инъекций и небезопасных скриптов. Без строгих правил эта штука почти бесполезна, лучше начинать с базового «default-src 'self'», понемногу расширять под свои нужды.
Далее X-Frame-Options — если не хочешь, чтобы сайт встраивали в iframe и использовали для clickjacking, ставишь DENY или SAMEORIGIN.
Strict-Transport-Security обязателен, если сайт на HTTPS, чтобы браузер всегда переключался на защищённый режим и не лез в http.
X-Content-Type-Options — простой заголовок, который не даёт браузеру гадать с типами контента и мешает некоторым атакам.
Referrer-Policy тоже стоит настроить из соображений приватности, чтобы по минимуму отдавать информацию о переходах.
Проверить всё можно через curl или онлайн инструменты типа securityheaders.com — сразу видно, что есть, чего не хватает. В nginx или apache почти все ставится парой строк — главное знать, что и зачем ставить, а то начинаешь кучу заголовков вешать, а толку мало.
Кого интересует, могу поделиться простыми примерами конфигов, которые я использую уже год без проблем. Кто что ещё добавляет в итоге?