Если вы задумались о безопасности вашего веб-сайта или портала, то обязательно необходимо рассмотреть вопрос HTTP-заголовков (headers) которые отдаёт ваш веб-сервер..

Заголовки (Headers) на вашем сайте

Если вы задумались о безопасности вашего веб-сайта или портала, то обязательно необходимо рассмотреть вопрос HTTP-заголовков (headers) которые отдаёт ваш веб-сервер

HTTP-заголовки обеспечивают дополнительный уровень безопасности, который помогает смягчить несколько атак и уязвимостей, включая SQL-инъекции, XSS, clickjacking и т.д.

Заголовки содержат некий набор данных, таких как Cache-Control, Content-Encoding, коды состояния и т.д.

Собранная информация из заголовков может помочь вам описать коммуникацию и, следовательно, улучшить безопасность вашего сайта

Content Security Policy (CSP)

Content Security Policy (CSP) — это дополнительный уровень безопасности, позволяющий распознавать и устранять определённые типы атак, таких как Cross Site Scripting (XSS (en-US)) и атаки внедрения данных. Спектр применения этих атак включает, но не ограничивается кражей данных, подменой страниц и распространением зловредного ПО.

Strict-Transport-Security

HTTP Strict-Transport-Security — заголовок ответа (часто используется аббревиатура HSTS (en-US)), позволяющий web-сайтам уведомить браузер о том, что доступ к ним должен быть осуществлён только посредством HTTPS вместо HTTP.

X-Content-Type-Options

HTTP-заголовок ответа X-Content-Type-Options является маркером, используемым сервером для указания того, что типы MIME, объявленные в заголовках Content-Type, должны соблюдаться и не изменяться. Это позволяет отказаться от перехвата MIME, или, другими словами, это способ сказать, что веб-мастера знали, что они делают.

Cache-Control

Общий заголовок Cache-Control используется для задания инструкций кеширования как для запросов, так и для ответов. Инструкции кеширования однонаправленные: заданная инструкция в запросе не подразумевает, что такая же инструкция будет указана в ответе

Access-Control-Allow-Origin

Заголовок ответа Access-Control-Allow-Origin показывает, может ли ответ сервера быть доступен коду, отправляющему запрос с данного источника origin.

X-XSS-Protection

Заголовок ответа HTTP X-XSS-Protection это особенность Internet Explorer, Chrome и Safari, которая останавливает загрузку страниц при обнаружении (XSS (en-US)) атаки. Хотя эти меры защиты не требуются в большинстве случаев для современных браузеров, когда сайты внедряют сильную политику безопасности контента Content-Security-Policy (en-US), которая отключает использование встроенного JavaScript (‘unsafe-inline’), они могут обеспечить защиту для пользователей, использующих устаревшие версии браузеров, не поддерживающих CSP.

Пример кода для Nginx

Для сайта с SSL, http 2.0. Always — применять принудительно

server {
       listen 443 ssl http2;
       ...
       add_header Host-Provider 'Jettochkin https://milordk.ru' always;
       add_header Strict-Transport-Security 'max-age=7776000; includeSubdomains; preload;' always;
       add_header X-Frame-Options SAMEORIGIN always;
       add_header X-Content-Type-Options nosniff always;
       add_header X-XSS-Protection '1; mode=block' always;
       add_header Permissions-Policy "accelerometer=(), autoplay=(), camera=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=(), usb=()" always;
       add_header Referrer-Policy "no-referrer-when-downgrade" always;
       add_header Access-Control-Allow-Origin *;
       add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval' *.vk.com * *.google.net *.google.com *.googletagmanager.com *.gstatic.com *.milordk.ru *.yastatic.net *.yandex.ru;" always;
      ...
HTTP