shrong> config/app.rb>
Код: Выделить всё
config.actions.content_security_policy[:script_src] = "'self' 'nonce'"
pre-source) pre-source) pre-strate-hease) pre. PrettyPrint-Override ">
Код: Выделить всё
...
....
Форма должна быть представлена через jquery ajax api, и ответ должен отображать код JS, определенный в следующем файле. Class = "Lang-None PrettyPrint-Override">
Код: Выделить всё
%script{ nonce: content_security_policy_nonce }
:plain
alert("Hello");
Код: Выделить всё
Accept */*
Content-Type application/x-www-form-urlencoded; charset=UTF-8
< /code>
и ответ содержит следующие значения для упомянутых заголовков < /p>
Content-Security-Policy base-uri 'self';child-src 'self';connect-src 'self';default-src 'none';font-src 'self';form-action 'self';frame-ancestors 'self';frame-src 'self';img-src 'self' https: data:;media-src 'self';object-src 'none';script-src 'self' 'nonce-iWzsbPAkiB//CnB0';style-src 'self' 'unsafe-inline' https:
Content-Type application/javascript; charset=utf-8
< /code>
и тело ответа содержит следующее < /p>
alert("Hello");
< /code>
Но этот встроенный скрипт не выполняется. В консоли браузера я вижу следующую ошибку < /p>
Content-Security-Policy: The page’s settings blocked an inline script (script-src-elem) from being executed because it violates the following directive: “script-src 'self' 'nonce-iWzsbPAkiB//CnB0'”
Код: Выделить всё
config.actions.content_security_policy[:script_src] = "'self' 'unsafe-inline'"
Код: Выделить всё
:plain
alert("Hello");
< /code>
Затем, когда я отправляю форму, тело ответа содержит < /p>
alert("Hello");
< /code>
и он выполняет выполнение предупреждения. Но использование «небезопасного» настолько же хорошо, как и в политике CSP. Так что я не предпочитаю.:javascript
alert("Hello");
< /code>
Тогда тело ответа содержит < /p>
alert("Hello");
< /code>
И для этого я вижу следующую ошибку в консоли браузера: < /p>
Uncaught SyntaxError: expected expression, got '
Подробнее здесь: [url]https://stackoverflow.com/questions/79672210/contentsecuritypolicy-for-script-set-to-nonce-but-ajax-request-not-executing-jav[/url]