Назад | Перейти на главную страницу

Одноразовый номер CSP nginx

У меня проблемы с добавлением CSP на мой сайт. Я настроил Content-Security-Policy-Report-Only в своей конфигурации nginx. И я понял это.

adsbygoogle.js: 37 [Только отчет] Отказался от применения встроенного стиля, поскольку он нарушает следующую директиву политики безопасности контента: "style-src http://example.com". Для включения встроенного выполнения требуется либо ключевое слово 'unsafe-inline', либо хэш ('sha256-c + dT7QO / wB / DJJUeioTL / YNq09s5o1WF1vk5RjJU / 4I ='), либо одноразовый номер ('nonce -...') . (анонимная функция) @ adsbygoogle.js: 37

Я искал решения по этому поводу. Но везде я вижу что-то вроде: «включить небезопасный инлайн». Но это небезопасный метод. Я думаю, что могу использовать "nonce-". Но я не знаю, как это реализовать в nginx conf. Вы можете помочь мне?

Недостаточно изменить конфигурацию nginx, чтобы использовать одноразовые номера.

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

Отсюда:

  • Если вы используете nginx в качестве обратного прокси, ваше приложение (за nginx) должно быть изменено таким образом, чтобы оно генерировало одноразовый номер, добавьте этот одноразовый номер ко всем <script> блоки и <style> блоки в своем выходе и обслуживают соответствующий заголовок CSP.
  • Если вы используете nginx для обслуживания статических файлов, переместите <script> и <style> содержимое в отдельные файлы, вычислить их хэш и вместо этого использовать хеш.

Теперь, ответив на общий вопрос, поговорим о деталях. Судя по вашему сообщению об ошибке, я думаю, вы имеете в виду //pagead2.googlesyndication.com/pagead/js/adsbygoogle.js. Кажется, что в этом скрипте используются встроенные стили, но вы не можете их контролировать, поэтому использовать одноразовые значения нельзя. Кроме того, что я просил Google изменить сценарий, я не понимаю, что вы могли бы сделать.