Как кодировать символы разделителя политики CSP (например, точку с запятой) в пределах частей выражений источника (например, URL) в заголовке CSP? - PullRequest
0 голосов
/ 19 октября 2018

Я сейчас пишу свою политику CSP в NGINX, и мне нужно предоставить report-uri, в котором есть специальный символ ;.Обратите внимание, что ; допустимо для пути URI.

default-src: 'self'; report-uri: /;index

Однако ; не распознается как допустимый символ, и поэтому я получаю следующую ошибку в своих браузерах (Chrome)console:

Unrecognized Content-Security-Policy directive 'index'.

Есть ли способ экранировать символ или заключить URI в строку (внутри строки заголовка)?Я уже пробовал \; и перенос одинарных кавычек (я использую двойные кавычки для переноса содержимого заголовка).

1 Ответ

0 голосов
/ 19 октября 2018

Вам необходимо кодировать точку с запятой в процентах как %3B.Спецификация CSP имеет следующее примечание :

Примечание. Символы, такие как U + 003B SEMICOLON (;) и U + 002C COMMA (,), не могут появляться в источникенепосредственно к выражениям: если вы хотите включить эти символы в исходное выражение, они должны быть в процентах закодированы как %3B и %2C соответственно.

Таким образом, политика CSP, показанная в вопросе, должнавместо этого пишите так:

default-src: 'self'; report-uri: /%3Bindex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...