Правильный способ использования CSP Filter In Play 2.7 - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь определить политику CSP для своего веб-сервиса и использую новые функции в Scala Play 2.7 .

Вот что я сделал:

  1. Установите директиву CSP и настройку nonce в моем приложении .conf
      csp {
        nonce {
          enabled = true
          pattern = "%CSP_NONCE_PATTERN%"
          header = false
        }

        directives {
          base-uri = "'none'"
          object-src = "'none'"
          script-src = ${play.filters.csp.nonce.pattern} "'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:"
        }
      }
  1. В шаблоне Twirl я делаю ссылку на одноразовый номер следующим образом:
<script @{CSPNonce.attr}...</script>

<script @{CSPNonce.attr} ..</script>

Пара наблюдений:

  1. Согласно документации, если я включу csp.header = true в application.conf, я должен увидеть значение nonce в RequestHeader, которое неявно заносится в шаблон Twirl. Я вообще не вижу этот заголовок при распечатке значений заголовка.
  2. Аналогичным образом, я не вижу одноразового значения в тегах скрипта при просмотре сгенерированного HTML в своем браузере.
  3. Независимо от того, добавляю ли я фрагмент @{CSPNonce.attr} Twirl в мой код встроенного сценария, загружается встроенный JS. Это странно, так как я думал, что только встроенные скрипты, помеченные правильными одноразовыми номерами, могут загружаться только.

Так в чем же дело? Я не правильно использую эту функцию?

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