Ошибка консоли Chrome: политика безопасности содержимого была доставлена ​​только в режиме отчета, но не указывает 'report-uri' - PullRequest
8 голосов
/ 05 апреля 2019

В консоли Chrome 73.0.3683.103 на сегодняшний день я вижу следующую ошибку:

Политика безопасности содержимого 'script-src' report-sample '' nonce-PNYOS1z63mBa / Tqkqyii '«unsafe-inline»; object-src «none»; base-uri «self» был доставлен в режиме «только отчет», но не указывает «report-uri»;политика не будет иметь никакого эффекта.Пожалуйста, либо добавьте директиву report-uri, либо предоставьте политику через заголовок Content-Security-Policy.работа. Инициатор, кажется, https://content.googleapis.com/static/proxy.html?usegapi=1...

Что вызывает это и как я могу это исправить?

Редактировать: На сегодняшний день я больше не вижу ошибку. Поэтому я предполагаюGoogle исправил эту проблему.

Ответы [ 2 ]

4 голосов
/ 16 апреля 2019

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

Сначала немного фона:

Что такое CSP?

Политика безопасности контента или CSP - это заголовок, который может установить ваш сервер, который сообщает браузеру принудительный белый список того, какой контент может запускаться на вашей странице, откуда он может появиться и как он может работать. Например, вы можете ограничить, из каких доменов разрешено извлекать JavaScript, может ли JavaScript работать встраиваемо или куда JavaScript может делать вызовы xhr.

CSP может работать в двух режимах: блокировка и отчетность .

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

Ваш конкретный вопрос

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

Это оставляет вам несколько вариантов:

  1. Ничего не делать. Ваш CSP не будет предупреждать вас о каких-либо проблемах (кроме сообщений в консоли) и не будет блокировать любой контент.
  2. Добавьте report-uri (что-то вроде report-uri: https://example.com/csp_reports) для получения запросов. Даже если вы ничего не получите в этой конечной точке, ваше конкретное предупреждение консоли исчезнет (вы все равно получите ошибки консоли для определенных нарушений CSP, даже если они не заблокированы).
  3. Переключить CSP в режим блокировки. Вы не будете получать никаких отчетов, но предупреждение исчезнет, ​​поскольку CSP теперь служит для блокировки контента. Осторожно не делайте этого, если он говорит, что блокирует много вещей. Это свидетельствует о том, что ваш сайт может сломаться. Во-первых, устраните проблемы, которые он блокирует, настроив CSP или изменив используемые ресурсы, а затем переключите его в режим блокировки.
    1. Переключите CSP в режим блокировки и добавьте report-uri. В долгосрочной перспективе это лучшее решение с точки зрения безопасности, но применяется предупреждение из шага 3.

Если бы это был я, я сначала добавил бы report-uri, чтобы понять, какие предупреждения генерирует моя страница (обратите внимание, что некоторые из них могут быть вызваны расширениями браузера - вы ничего не можете с этим поделать, но это нормально). Как только я пойму общие предупреждения, я настрою CSP и какие ресурсы у меня есть, чтобы убедиться, что страница загружается без каких-либо предупреждений или ошибок в консоли. Затем я переключил бы CSP в режим блокировки, чтобы воспользоваться преимуществами безопасности, которые он обеспечивает.

0 голосов
/ 10 апреля 2019

Это связано с настройками уровня сервера / бэкэнда.

Если у вас есть доступ к вашему серверу, с которого подается код, вы можете установить параметры заголовка. Так что в настоящее время Content-Security-Policy-Report-Only это было установлено без всех обязательных параметров. Вы можете просто проверить там и либо удалить этот заголовок (, если не требуется ), либо установить необходимые параметры.

Подробности заголовка можно найти по здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...