Вопрос про заголовки безопасности

Obi-Wan Kenobi
На сайте с 04.02.2023
Offline
1
261

Здравствуйте, уважаемые знатоки!

Решил прогнать сайт через Screaming Frog, там в принципе никакого криминала не нашлось, но вот он ругается на отсутствие заголовков безопасности.

Description

URLs that are missing the Content-Security-Policy response header. This header allows a website to control which resources are loaded for a page. This policy can help guard against cross-site scripting (XSS) attacks that exploit the browser's trust of the content received from the server. The SEO Spider only checks for existence of the header, and does not interrogate the policies found within the header to determine whether they are well set-up for the website. This should be performed manually.

How To Fix

Set a strict Content-Security-Policy response header across all page to help mitigate cross site scripting (XSS) and data injection attacks.

Description

URLs missing 'no-referrer-when-downgrade', 'strict-origin-when-cross-origin', 'no-referrer' or 'strict-origin' policies in the Referrer-Policy header. When using HTTPS, it's important that the URLs do not leak in non-HTTPS requests. This can expose users to 'man in the middle' attacks, as anyone on the network can view them.

How To Fix

Consider setting a referrer policy of strict-origin-when-cross-origin. It retains much of the referrer's usefulness, while mitigating the risk of leaking data cross-origins.

Если я правильно понял, то нужно запретить выполнять скрипты всем, кроме каких-нибудь условных Яндекса и Гугла ну и рекламных сетей?

Насколько это вообще критично для информационника?


SuvR9
На сайте с 25.02.2018
Offline
40
#1

это рекомендации чисто. Я себе настраивал и вроде бы всё просто - но на разных страницах могут вылазить всякие косяки. Типа не будут работать скрипты и видосы вбок съезжают, короче тут без бутылки не разберешся.

заголовки сделать и достаточно думаю.

<?php
header('Cross-Origin-Opener-Policy: same-origin');
header('Cross-Origin-Embedder-Policy: require-corp');
?>

в общем это гимор, но для безопасности бы не мешало.

Obi-Wan Kenobi
На сайте с 04.02.2023
Offline
1
#2
SuvR9 #:

это рекомендации чисто. Я себе настраивал и вроде бы всё просто - но на разных страницах могут вылазить всякие косяки. Типа не будут работать скрипты и видосы вбок съезжают, короче тут без бутылки не разберешся.

заголовки сделать и достаточно думаю.

<?php
header('Cross-Origin-Opener-Policy: same-origin');
header('Cross-Origin-Embedder-Policy: require-corp');
?>

в общем это гимор, но для безопасности бы не мешало.

Можно глянуть как тут сделано:

default-src 'self' chat.searchengines.guru d.searchengines.guru; script-src 'self' content.mql5.com search.searchengines.guru d.searchengines.guru 'unsafe-inline'; style-src d.searchengines.guru 'unsafe-inline'; img-src 'self' content.mql5.com chat.searchengines.guru d.searchengines.guru blob: data:; media-src 'self' chat.searchengines.guru; font-src 'self' d.searchengines.guru; connect-src 'self' content.mql5.com https://chat.searchengines.guru wss://chat.searchengines.guru; frame-src 'self' d.searchengines.guru content.mql5.com www.youtube.com; frame-ancestors 'self'; object-src 'self' blob:;
SuvR9
На сайте с 25.02.2018
Offline
40
#3

это изоляция в рамках хоста, это у меня проблем не вызвало, тут всё подробно описано если интересно https://scotthelme.co.uk/content-security-policy-an-introduction/

Я на примере сайта майкрософта делал и по ссылке что выше.

Это  очень просто настроить если сайт сделан на любом конкретном шаблоне или движке, там можно изолировать что угодно, потому-что код одинаковый, а если сайт самописный то код местами отличается, а правила изоляции отказываются работать правильно -если это не вписывается так сказать в рамки заданных условий, так сказать, тупо нет правил - либо они есть, но они что называется что есть - что нет. Тогда нах они нужны.

К примеру спрятанный в подвале код и текст после настроек начинает показываться выше head сайта - паливо голимое, и часть видосов я так и не смог победить, они либо стают очень маленькими, либо показывается только угол видео, короче я забил на это. Но все остальное работает отлично.

как пример

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"

вот эти правила не стал делать, из-за косяков на самописе, а так на шабах норм изолирует.

Header set Content-Security-Policy:

Content Security Policy - An Introduction
Content Security Policy - An Introduction
  • 2014.11.27
  • scotthelme.co.uk
Content Security Policy is delivered via a HTTP response header, much like HSTS, and defines approved sources of content that the browser may load. It can be an effective countermeasure to Cross Site Scripting (XSS) attacks and is also widely supported and usually easily deployed. Why do we need CSP? When your browser loaded this page, it...
Obi-Wan Kenobi
На сайте с 04.02.2023
Offline
1
#4
SuvR9 #:
Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"

Я у себя тоже такое прописал:

accelerometer=(), battery=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), interest-cohort=(), microphone=(), midi=(), payment=(), publickey-credentials-get=(), sync-xhr=(), vr=(), xr-spatial-tracking=()

Потом вычитал какие-то опасения, что Гугл за вот это interest-cohort=() пессимизировать может 😀 https://habr.com/ru/post/552844/

SuvR9 #:
Это  очень просто настроить если сайт сделан на любом конкретном шаблоне или движке, там можно изолировать что угодно,

У меня сайт на Вордпресс и на нём есть только метрика и аналитика, реклама РСЯ, картинки и видосы с ютуба, вот мне надо как-то всё это разрешить, а всё остальное запретить.

SuvR9 #:
Header always set Referrer-Policy "strict-origin-when-cross-origin"

Этот заголовок устанавливал, а Screaming Frog всё равно ругался, что его нет.

Спасибо за ссылочку, изучу сейчас.

SuvR9
На сайте с 25.02.2018
Offline
40
#5

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


Header set Content-Security-Policy: "default-src media-src 'self'; img-src 'self'; frame-src 'self'; font-src 'self'; script-src 'self'; style-src 'unsafe-inline'; www.youtube.com; тут адрес метрики; тут адрес аналитики;"

ещё в помощь пару ссылок, нашел в нотепаде где всё делал.
https://stackoverflow.com/questions/13421463/htaccess-access-control-allow-origin
https://stackru.com/questions/55887536/iframe-iz-togo-zhe-istochnika-ne-zagruzhaetsya-s-pomoschyu-cross-origin-embedder
https://evilinside.ru/nastrojka-cors-v-nginx/
https://web.dev/coop-coep/

htaccess Access-Control-Allow-Origin
htaccess Access-Control-Allow-Origin
  • 2012.11.16
  • Tzook Bar Noy Tzook Bar Noy 11.2k 13 13 gold badges 50 50 silver badges 80 80 bronze badges
  • stackoverflow.com
I'm creating a script that loads externally on other sites. It loads CSS and HTML and works fine on my own servers. However, when I try it on another website it displays this awful error: I tried editing the htaccess file like this: But it still doesn't work.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий