HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Уязвимости CMS / форумов
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 11.12.2022, 01:00
SokoL
Banned
Регистрация: 27.04.2010
Сообщений: 0
С нами: 8442499

Репутация: 0
По умолчанию

Просканить/проверить заголовки можно на сайте https://securityheaders.com

Если рейтинг ниже «А», то следует настроить заголовки отмеченные красным, кроме Permissions-Policy.

Пример конфигураøии в .htaccess

source:

Код:
## CSP
Header
set
Content-Security-Policy: default-src
'self'
; img-src
'self'
https://i.imgur.com;
object-src
'none'
; script-src
'self'
; style-src
'self'
; frame-ancestors
'self'
; base-uri
'self'
;
form-action
'self'
;
## General Security Headers
Header
set
X-XSS-Protection: 1; mode=block
 Header
set
Access-Control-Allow-Origin: http://www.one.site.com
 Header
set
X-Frame-Options: deny
 Header
set
X-Content-Type-Options: nosniff
 Header
set
Strict-Transport-Security: max-age=3600; includeSubDomains
 Header
set
Referrer-Policy: strict-origin
## Caching rules
# Don’t cache by default
Header
set
Cache-Control no-cache
 Header
set
Expires: 0
# Cache static assets for 1 day

 Header
set
Cache-Control
"max-age=86400, public"

Пример конфигураøии Nginx

source:

Код:
## CSP
add_header Content-Security-Policy: default-src
'self'
; img-src
'self'
https://i.imgur.com;
object-src
'none'
; script-src
'self'
; style-src
'self'
; frame-ancestors
'self'
; base-uri
'self'
;
form-action
'self'
;
## General Security Headers
add_header X-XSS-Protection: 1; mode=block;
add_header Access-Control-Allow-Origin: http://www.one.site.com;
add_header X-Frame-Options: deny;
add_header X-Content-Type-Options: nosniff;
add_header Strict-Transport-Security: max-age=3600; includeSubDomains;
add_header Referrer-Policy: strict-origin;
## Caching rules
# Don’t cache by default
add_header Cache-Control no-cache;
add_header Expires: 0;
# Cache static assets for 1 day
location ~* \.(?:ico|css|js|gif|jpe?g|png|svg|woff|ttf|eot)$ {
 try_files
$uri
@rewriteapp;
 add_header Cache-Control
"max-age=86400, public"
;
}

Рассмотрим более подробно каждый заголовок.

HTTP Strict Transport Security

https://developer.mozilla.org/ru/doc...sport-Security

Цитата:


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



Заголовок HSTS (HTTP Strict Transport Security) гарантирует, что весь обмен данными из браузера осуществляется по протоколу HTTPS (HTTP Secure). Это предотвращает попытки обойти HTTPS и перенаправляет все HTTP запросы на HTTPS.

Перед тем, как добавлять этот заголовок, убедитесь в том, что все страницы сайта доступны по HTTPS, иначе они не будут отображаться.

Заголовок HSTS совместим с последними версиями большинства браузеров (IE, Firefox, Opera, Safari и Chrome). Всего есть три параметра конфигурации.

Кстати, если вы используете cloudflare, там есть опция автоматической переадресации на https.

max-age
Интервал (в секундах) для указания браузеру, что запросы следует отправлять только через HTTPS.

includeSubDomains
Конфигурация распространяется на поддомены.

preload
Используйте, если хотите добавить домен в предопределенный список HSTS

В качестве примера давайте настроим HSTS на год и добавим домен и поддомены в предопределенный список HSTS.

Apache

Чтобы использовать HSTS в Apache, добавьте в файл httpd.conf следующую запись:

source:

Код:
Header
set
Strict
-Transport-Security
"max-age=31536000; includeSubDomains; preload"

Nginx

Чтобы настроить HSTS в Nginx, добавьте следующую запись в nginx.conf в директиве Server (SSL):

source:

Код:
add_header
Strict
-Transport-Security
'max-age=31536000; includeSubDomains; preload';

Cloud Flare

Если вы используете Cloud Flare, то включить HSTS можно всего за пару кликов мыши.
  • Войдите в Cloudflare и выберите необходимый сайт.
  • Перейдите во вкладку “Crypto” и нажмите “Enable HSTS.”
X-XSS-Protection

https://developer.mozilla.org/ru/doc...XSS-Protection

Цитата:


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



Заголовок X-XSS-Protection может предотвратить некоторые XSS-атаки («межсайтовый скриптинг»), он совместим с IE 8+, Chrome, Opera, Safari и Android.

Google, Facebook, Github используют этот заголовок, и большинство консультантов по предупреждению проникновений порекомендуют Вам его использовать.

Всего существует четыре варианта конфигурации:

0
XSS-фильтр выключен

1
XSS-фильтр включен, и, в случае обнаружения атаки, страница подвергается цензуре

1;mode=block
XSS-фильтр включен, и, в случае обнаружения атаки, предотвращает обработку страницы

1;report=http://example.com/report_URI
XSS-фильтр включен, и, в случае обнаружения атаки, отправляется отчет о нарушении

Давайте используем 1;mode=block для следующих веб-серверов.

Apache

Добавьте следующую запись в httpd.conf вашего сервера Apache:

source:

Код:
Header
set
X-XSS-Protection
"1; mode=block"

Nginx

Добавьте следующее в nginx.conf в разделе HTTP:

source:

Код:
add_header X-XSS-Protection
"1; mode=block"
;

Ну и, понятно что можно использовать просто функцию header в PHP:

PHP highlight

Код:
Код:
header("X-XSS-Protection: 1; mode=block"); 


X-Frame-Options

https://developer.mozilla.org/en-US/...-Frame-Options

Цитата:


The X-Frame-Options HTTP response header can be used to indicate whether or not a browser should be allowed to render a page in a , , or . Sites can use this to avoid click-jacking attacks, by ensuring that their content is not embedded into other sites.

The added security is provided only if the user accessing the document is using a browser that supports X-Frame-Options.



Заголовок X-Frame-Options позволяет снизить уязвимость вашего сайта для кликджекинг-атак. Этот заголовок служит инструкцией для браузера не загружать вашу страницу в frame/iframe.

Есть три варианта конфигурации.

SAMEORIGIN
Позволяет загрузку контента в frame/iframe только если фрейм и страница, его загружающая, расположены на одном домене.

DENY
Запрещает загрузку контента в frame/iframe.

ALLOW-FROM
Допускает загрузку контента в фреймах только для определенного URI.

Поместив ваш веб-сайт в iFrame, вредоносный ресурс получает возможность произвести кликджекинг атаку — запустив некий JavaScript, который обманом вынудит пользователя кликнуть по iFrame, а после начнет взаимодействовать с ресурсом от его, пользователя, имени (то есть человек кликнет по вредоносной ссылке или кнопке, даже не подозревая об этом!).

Этот заголовок всегда надо настраивать на отказ, исключение — если вы намеренно используете фреймы. Тогда заголовок нужно настраивать на тот же источник. Если вы по умолчанию используете фреймы с другим сайтом, занесите сторонний домен в белый список. Следует также отметить, что этот заголовок замещается директивой CSP frame-ancestors.

Подробнее про атаку типа clickjacking можно почитать здесь https://learn.javascript.ru/clickjacking

Там же найдете некоторые примеры.

Давайте рассмотрим, как добавить конфигурацию “SAMEORIGIN” для запрета встраивания на сторонних доменах.

Apache

Добавьте следующую строку в httpd.conf и для проверки перезагрузите веб-сервер:

source:

Код:
Header
always append X-Frame-Options SAMEORIGIN

Nginx

Добавьте следующее в nginx.conf в директиве Server:

source:

Код:
add_header X-Frame-Options “SAMEORIGIN”;

Цитата:


ВАЖНО! Установка SAMEORIGIN запретит вебмастеру доступ к сайту, поэтому необходимо добавлять Яндекс вебмастер в исключения, как и сам домен, на случай, если используется iframe.



Самой известной проблемой является некорректная работа Вебвизора от Яндекс. Данные собираются валидно, но при попытке просмотреть запись посещения возникает ошибка: «Невозможно воспроизвести посещение на данной странице. Возможные причины: Не установлен код счётчика или установлен запрет на отображение страницы во фрейме»

Варианты добавления в конфиги исключений сводят всю идею X-Frame-Options на ноль, так как могут быть легко подделаны. Поэтому варианты типа приведенного ниже могут использоваться, но не рекомендуются.

Для решения проблемы придется сделать выбор: либо сервис (в данном случае вебвизор), либо безопасность, других вариантов пока что не существует, к сожалению.

Пример кода для исключения Яндекса для nginx:

source:

Код:
set
$frame_options
''
;
if
(
$http_referer
!~
'^https?:\/\/([^\/]+\.)?(ves-svet\.ru|webvisor\.com|metri[ck]a\.yandex\.(com|ru|com\.tr))\/'
){
set
$frame_options
'SAMEORIGIN'
;
    }
    add_header X-Frame-Options
$frame_options
;

Для PHP:

PHP highlight

Код:
Код:
$metrika_str=preg_match("^https?://([^/]+metrika.yandex\.(ru|ua|com|com\.tr|by|kz)|([^/]+\.)?webvisor\.com/",$_SERVER['HTTP_REFERER']);
if(!$metrika_str){
header('X-Frame-Options:SAMEORIGIN');
} 


Cross-Origin Resource Sharing (CORS)

https://developer.mozilla.org/ru/docs/Web/HTTP/CORS

Цитата:


Cross-Origin Resource Sharing (CORS) — механизм, использующий дополнительные HTTP-заголовки, чтобы дать возможность агенту пользователя получать разрешения на доступ к выбранным ресурсам с сервера на источнике (домене), отличном от того, что сайт использует в данный момент. Говорят, что агент пользователя делает запрос с другого источника (cross-origin HTTP request), если источник текущего документа отличается от запрашиваемого ресурса доменом, протоколом или портом.



CORS — это не заголовок, а механизм, используемый браузером для предоставления доступа к ресурсам приложения. Настройки по умолчанию обычно правильные, но если надо — можно и поменять.

code:

Access-Control-Allow-Origin: https://example.com

означает, что https://example.com имеет доступ к содержимому ответа. Если значением данного заголовка является *, ресурсы будут доступны любому сайту. В этом случае полномочия (credentials) не требуются;

code:

Access-Control-Allow-Credentials: true

означает, что запрос на получение ресурсов должен содержать полномочия (куки). При отсутствии полномочий в запросе, даже при наличии источника в заголовке Access-Control-Allow-Origin, запрос будет отклонен.

Например, сайт А содержит некий JavaScript, который хочет сделать запрос к сайту В. Сайт В должен ответить на этот запрос — если заголовок разрешает сайту А сделать запрос. Если нужно настроить множество источников, подробности на MDN.

Пример обработки сложного запроса:

code:

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400

Set-Cookie

https://developer.mozilla.org/en-US/...ers/Set-Cookie

Цитата:


The Set-Cookie HTTP response header is used to send a cookie from the server to the user agent, so that the user agent can send it back to the server later. To send multiple cookies, multiple Set-Cookie headers should be sent in the same response.



Убедитесь, что ваши cookies устанавливаются только через протокол HTTPS (с шифрованием), и что к ним нет доступа через JavaScript (ваш сайт должен поддерживать https).

Всегда необходимо выставлять эти флаги:
  • Secure
  • HTTPOnly
Пример определения Cookie:

source:

Код:
Set-Cookie:

=

; Domain=

; Secure; HttpOnly

X-Content-Type-Options

https://developer.mozilla.org/en-US/...t-Type-Options

Цитата:


The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should be followed and not be changed. The header allows you to avoid MIME type sniffing by saying that the MIME types are deliberately configured.



Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.

Давайте посмотрим, как добавить этот заголовок.

Apache

Добавьте следующую строку в файл httpd.conf:

source:

Код:
Header
set X-
Content
-Type-Options nosniff

Nginx

Добавьте следующую строку в файл nginx.conf в директиве Server:

source:

Код:
add_header X-
Content
-Type-Options nosniff;

Если вы используете WordPress, то вы можете воспользоваться плагином Security Headers для использования этого заголовка.

Referrer-Policy

https://developer.mozilla.org/en-US/...eferrer-Policy

Цитата:


The Referrer-Policy HTTP header controls how much referrer information (sent with the Referer header) should be included with requests. Aside from the HTTP header, you can set this policy in HTML.



Заголовок Referrer-Policy определяет содержание информации о реферере, указываемой в заголовке Referer. Заголовок Referer содержит адрес запроса (например, адрес предыдущей страницы) или адрес загруженного изображения, или другого ресурса. Он используется для аналитики, логирования, оптимизации кеша и т.д. Однако он также может использоваться для слежrb или кражи информации, различных "побочных эффектов".

Значение/Описание

no-referrer
Заголовок Referer не включается в запрос

no-referrer-when-
Значение по умолчанию. Реферер указывается при выполнении запроса

downgrade
между HTTPS и HTTPS, но не указывается при выполнении запроса между HTTPS и HTTP

origin
Указывается только источник запроса (например, реферером документа https://example.com/page.html будет https://example.com)

origin-when-cros
При выполнении запроса в пределах одного источника указывается полный

s-origin
URL, иначе указывается только источник (как в предыдущем примере)

same-origin
При выполнении запроса в пределах одного источника указывается источник, в противном случае, реферер не указывается

strict-origin
Похоже на no-referrer-when-downgrade, но указывается только источник

strict-origin-when-cross-origin
Сочетание strict-origin и origin-when-cross-origin

unsafe-url
Всегда указывается полный URL

Cache-Control и Expires

https://developer.mozilla.org/en-US/.../Cache-Control
https://developer.mozilla.org/ru/doc...eaders/Expires

Нужно помнить что для разных типов контента нужны разные политики кэширования.

Никакая деликатная информация (вроде страницы пользователя или страницы оплаты товара) не должна кэшироваться. Одна из причин — чтобы другой пользователь компьютера не нажал кнопку "назад" и не увидел личных данных другого пользователя.
Впрочем, кэшировать можно и нужно те ресурсы/страницы, которые обновляются редко. Например, статические ресурсы (картинки, файлы CSS и JS). Кэширование можно настроить на постраничной основе, или используя regex в настройках сервера.

source:

Код:
# Don’t cache by default
Header
set
Cache-Control no-cache
# Cache static assets for 1 day 
Header
set
Cache-Control
"max-age=86400, public"

Заголовок Expires устанавливает время, на которое текущий запрос сохраняется в кэше. Он игнорируется, если включен заголовок Cache-Control max-age, так что включаем его только на случай, если его проверяет простенький сканер — без учета контроля кэширования.
Мы предполагаем, что в целях безопасности браузер не кэширует ничего, так что дата в заголовке всегда будет в прошлом.

Permissions-Policy

Данный заголовок является заменой заголовка Feature-Policy и предназначен для управления доступом к некоторым продвинутым возможностям.

code:

Permissions-Policy: camera=(), fullscreen=*, geolocation=(self "https://example.com" "https://another.example.com")

В данном случае мы полностью запрещаем доступ к камере (видеовходу) устройства, разрешаем доступ к методу requestFullScreen() (для включения полноэкранного режима воспроизведения видео) для всех. Доступ к информации о местонахождении устройства разрешаем только для источников example.com и another.example.com.

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

С возможными значениями можно ознакомиться тут: https://habr.com/ru/company/timeweb/blog/568288/

Content Security Policy

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

Цитата:


Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross-Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft, to site defacement, to malware distribution.



CSP применяется, чтобы предотвращать межсайтовый скриптинг — путем определения, какие ресурсы могут быть загружены. Из всего списка этот заголовок отнимет больше остальных времени на настройку и правильную поддержку, а еще больше других подвержен рискам. Если вдруг вы заблокируете используемый вами же источник, то нарушите функциональность собственного сайта. Если вы когда-либо вручную прописывали фильтры для плагина AdBlock, это нечто отдаленно похожее, но на уровне сервера.

Предварительно можно настроить CSP так (на боевом сайте она, скорее всего, потребует множества модификаций). Добавьте в каждый раздел вашего сайта домены:
  • Default to only allow content from the current site
  • Allow images from current site and imgur.com
  • Don't allow objects such as Flash and Java
  • Only allow scripts from the current site
  • Only allow styles from the current site
  • Only allow frames from the current site
  • Restrict URL's in the tag to current site
  • Allow forms to submit only to the current site

code:

Content-Security-Policy: default-src 'self'; img-src 'self' https://i.imgur.com; object-src 'none'; script-src 'self'; style-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self';

Инструмент оценки CSP: https://csp-evaluator.withgoogle.com/

Директива CSP/Описание

base-uri
Определяет базовый URI для относительных

default-src
Определяет политику загрузки ресурсов всех типов при отсутствии специальной директивы (политику по умолчанию)

script-src
Определяет скрипты, которые могут выполняться на странице

object-src
Определяет, откуда могут загружаться ресурсы — плагины

style-src
Определяет стили, которые могут применяться на странице

img-src
Определяет, откуда могут загружаться изображения

media-src
Определяет, откуда могут загружаться аудио и видеофайлы

child-src
Определяет, откуда могут загружаться фреймы

frame-ancestors
Определяет, где (в каких источниках) ресурс может загружаться во фреймы

font-src
Определяет, откуда могут загружаться шрифты

connect-src
Определяет разрешенные URI

manifest-src
Определяет, откуда могут загружаться файлы манифеста

form-action
Определяет, какие URI могут использоваться для отправки форм (в атрибуте action)

sandbox
Определяет политику песочницы (sandbox policy) HTML, которую агент пользователя применяет к защищенному ресурсу

script-nonce
Определяет, что для выполнения скрипта требуется наличие уникального значения

plugin-types
Определяет набор плагинов, которые могут вызываться защищенным ресурсом посредством ограничения типов встраиваемых ресурсов

reflected-xss
Используется для активации/деактивации эвристических методов браузера для фильтрации или блокировки отраженных XSS-атак

block-all-mixed-content
Запрещает загрузку смешанного контента

upgrade-insecure-requests
Определяет, что небезопасные ресурсы (загружаемые по HTTP) должны загружаться по HTTPS

report-to
Определяет группу (указанную в заголовке Report-To), в которую отправляются отчеты о нарушениях политики

Возможные значения директив для нестрогого режима CSP:
  • 'self' — ресурсы могут загружаться только из данного источника;
  • 'none' — запрет на загрузку ресурсов;
  • * — ресурсы могут загружаться из любого источника;
  • example.com — ресурсы могут загружаться только из example.com.
Еще пример для разбора:

code:

Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src example.com

В данном случае изображения могут быть загружены из любого источника, другие медиафайлы — только с media1.com и media2.com (исключая их поддомены), скрипты — только с example.com.

Рассмотрим разрешение загрузки любого контента с текущего домена для разных веб-серверов.

Apache

Добавьте следующую строку в файл httpd.conf и перезагрузите веб-сервер:

code:

Header set Content-Security-Policy: default-src 'self'; img-src 'self' https://i.imgur.com; object-src 'none'; script-src 'self'; style-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self';

Nginx

Добавьте следующее в секцию Server в файле nginx.conf:

code:

add_header Content-Security-Policy: default-src 'self'; img-src 'self' https://i.imgur.com; object-src 'none'; script-src 'self'; style-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self';

Цитата:


ВАЖНО! Параметры script-src ‘self’ или default-src ‘self’ отключат загрузку сторонних объектов с других сайтов. Данный параметр следует использовать очень осторожно и только если вы точно знаете, что делаете.



Полезные советы
  • Обязательно проверяйте работу сайта после установки заголовков.
  • Всегда делайте бэкап файлов конфигурации и перезагружайте nginx/Apache, иначе результатов вы не увидите.

    Чтобы на Nginx все заголовки работали для любого отклика стоит добавить в конце add_headers параметр always.
  • Если заголовки не появляются на nginx, проверьте, прежде всего, тот ли файл вы редактируете и перезапустите nginx через консоль. Если это не помогло, проверьте в какой блок вы вставили заголовки. Документация гласит, что add_headers работает на всех трех уровнях: http, server, и location, но используются заголовки только самого низкого уровня. То есть, если вы пропишете все заголовки в server, а в location есть любой другой заголовок, то вывод будет только тех, что указаны в location, даже если в server вы добавляете те заголовки, которых нет в location.
  • Старайтесь не экспериментировать с Content Security Policy (CSP), так как можете отключить загрузку скриптов и стилей и поломать сайт. Особенно это касается сайтов на 1C-Bitrix, у которых включена подгрузка изображений с CDN. Помимо этого может быть эквайринг, синхронизации, и прочий функционал, о котором вы, возможно, и не подозреваете. Если сомневаетесь, лучше вовсе не ставить данный заголовок.
Как применить конфигурацию веб-сервера

Apache /etc/apache или /etc/httpd

Проверка конфигурации на ошибки синтаксиса до перезагрузки сервера

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

source:

Код:
$
sudo httpd -t
$
sudo apache2ctl -t

Если в конфигурации нет ошибок, то перезагружаем.

Если вы внесли какие-либо изменения в конфигурацию сервера Apache, вы можете указать службе перезагрузить свою конфигурацию, выполнив:

source:

Код:
------------
On
CentOS/RHEL ------------
$
sudo systemctl reload httpd
[
On
Systemd
]
$
sudo service httpd reload
[
On
SysVInit
]
------------
On
Ubunt/Debian ------------
$
sudo systemctl reload apache2
[
On
Systemd
]
$
sudo service apache2 reload
[
On
SysVInit
]

Nginx /etc/nginx

Проверка конфигурации на ошибки синтаксиса до перезагрузки сервера

source:

Код:
$
sudo nginx -t
$
sudo nginx -T // Подробный вывод используемых файлов конфигурации в порядке
их подключения.

Если в конфигурации нет ошибок, то перезагружаем.

source:

Код:
$
sudo nginx -s reload

Важно помнить, что конфигурации отличаются для HTTP и HTTPS и нужно найти верный хост в конфиге.

Если используется связка apache+nginx - изменения вносим в nginx, т.к. он первый отвечает и проксирует запросы.

Пример конфигурации заголовков для Nginx

source:

Код:
add_header Strict-Transport-Security
"max-age=31536000; includeSubDomains"
always;
  add_header X-XSS-Protection
"1; mode=block"
;
  add_header Referrer-Policy
"no-referrer-when-downgrade"
;
  add_header Content-Security-Policy
"upgrade-insecure-requests"
;
	add_header X-Content-Type-Options nosniff;
set
$frame_options
''
;
if
(
$http_referer
!~
'^https?:\/\/([^\/]+\.)?(ves-svet\.ru|webvisor\.com|metri[ck]a\.yandex\.(com|ru|com\.tr))\/'
){
set
$frame_options
'SAMEORIGIN'
;
    }
  add_header X-Frame-Options
$frame_options
;

Проверяем сайт на securityheaders.com

До

После

Как видно, у нас высшая оценка «А» и не хватает только заголовка Permissions-Policy. Но так как он не обязательный и экспериментальный, то это влияет на оценку. Данный параметр позволяет отключать некоторые возможности браузеров и API, например, iframe, video, audio и т.д. Так как этим параметром можно отключить и что-то нужное, в данном случае мы его не использовали.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.