Администрирование
Расширенные настройки
Заголовки
5мин
общие заголовки выполняют большую роль в безопасности, помогая уменьшить поверхность атак разных видов на веб приложение эти заголовки используются в большинстве современных веб приложений, так как они обеспечивают базовый уровень защиты от наиболее распространённых уязвимостей docker сборка пассворка общие заголовки безопасности подключаются через директиву include в основном конфигурационном файле nginx и определяются в файле extra/security headers conf заголовок strict transport security задаётся напрямую в основном конфигурационном файле и, таким образом, применяется ко всему сайту заголовок значение x frame options "deny" x content type options "nosniff" x xss protection "1; mode=block" referrer policy "strict origin when cross origin" permissions policy "camera=(), microphone=(), geolocation=()" strict transport security "max age=31536000; includesubdomains" apache2\httpd общие заголовки содержатся в public/ htaccess они применяются автоматически при условии, что обработка htaccess файлов не была отключена в конфигурации apache заголовок strict transport security указан в примерах конфигурации в инструкциях по установке заголовок значение x frame options "deny" x content type options "nosniff" x xss protection "1; mode=block" referrer policy "strict origin when cross origin" permissions policy "camera=(), microphone=(), geolocation=()" strict transport security "max age=31536000; includesubdomains" x frame options — определяет, может ли страница быть загружена во фрейм, iframe или object x content type options — предотвращает попытки браузера угадать тип содержимого x xss protection — включает (или отключает) встроенную защиту от xss в старых версиях браузеров устаревший, но может использоваться для совместимости referrer policy — определяет, какую информацию браузер отправляет в referer permissions policy — позволяет ограничивать использование разных возможностей, например доступ к камере, микрофону, геолокации и другим api strict transport security — сообщает браузеру, что сайт должен загружаться только по https, предотвращая атаки типа downgrade и mitm cross origin resource sharing заголовки cors регулируют доступ к ресурсам сайта с других доменов в большинстве случаев изменение или добавление заголовков cors не требуется они нужны только в случаях, когда фронтенд и бэкенд размещены на разных origin — то есть отличаются по домену, порту или протоколу docker сборка пассворка заголовки cors подключаются через директиву include в основном файле конфигурации nginx и определяются в файле extra/cors conf заголовок значение access control allow origin " " access control allow methods "get,head,options,post,put,patch,delete" access control allow headers "authorization, access control allow origin, access control allow headers,origin, accept, x requested with, content type, access control request method, access control request headers, x browser mode, x master key hash, x csrf token" access control max age "1728000" vary "origin" apache2\httpd заголовки cors по умолчанию не устанавливаются при необходимости их можно явно задать в конфигурации виртуального хоста apache2, внутри блока \<directory> или глобально для всего виртуального хоста заголовок значение access control allow origin " " access control allow methods "get,head,options,post,put,patch,delete" access control allow headers "authorization, access control allow origin, access control allow headers,origin, accept, x requested with, content type, access control request method, access control request headers, x browser mode, x master key hash, x csrf token" access control max age "1728000" vary "origin" access control allow origin — указывает, какие домены могут делать запросы к ресурсу поддерживает следующие значения разрешены запросы с любых доменов — точное значение, схема + домен — https //example ru указание нескольких доменов через запятую не поддерживается стандартом cors и приведет к ошибке! использование нескольких доменов и другие динамические сценарии, реализуются на уровне веб сервера docker сборка заменить строку add header access control allow origin " " always; в файле конфигурации /conf/nginx/extra/cors conf следующими строками с указанием своих доменов или другого патерна часть файла конфигурации cors conf if ($http origin ^https? //(example\\ ru|another\\ ru)$) { add header access control allow origin "$http origin" always; add header access control allow credentials "true" always; } apache2/httpd добавить следующий блок в файл конфигурации виртуального хоста часть файла конфигурации виртуального хоста apache2 \<ifmodule mod headers c> setenvif origin "http(s)? //(example\\ com|another\\ com)$" origin allowed=$0 header always set access control allow origin "%{origin allowed}e" env=origin allowed header always set access control allow credentials "true" env=origin allowed header always set access control allow methods "get, post, put, patch, delete, options" env=origin allowed header always set access control allow headers "authorization, access control allow origin, access control allow headers,origin, accept, x requested with, content type, access control request method, access control request headers, x browser mode, x master key hash, x csrf token" env=origin allowed header always set access control max age "1728000" env=origin allowed header always set vary "origin" env=origin allowed \</ifmodule> access control allow methods — определяет, какие http методы разрешены для кросс доменных запросов access control allow headers — указывает, какие заголовки могут быть отправлены в кросдоменных запросах access control max age — время (в секундах), в течение которого результат preflight запроса может кэшироваться браузером, чтобы не выполнять его каждый раз vary — в контексте cors используется для корректной обработки запросов, на cdn и прокси позволяет корректно обрабатывать разные origin запросы и кэшировать их отдельно