Содержание DecurityPolicy для сценария, установленного в Nonce, но запрос AJAX не выполняет ответ JavaScript, несмотря нJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Содержание DecurityPolicy для сценария, установленного в Nonce, но запрос AJAX не выполняет ответ JavaScript, несмотря н

Сообщение Anonymous »

В моем веб-приложении (на основе Hanami 2.2) у меня есть содержание, которая разрешает встроенные сценарии запускаться с использованием стратегии Nonce
shrong> config/app.rb>

Код: Выделить всё

config.actions.content_security_policy[:script_src] = "'self' 'nonce'"
Из-за этого, когда страница загружается в браузере, теги CSS и JS (включенная с использованием Hanami Helper Methods StyleSheet_tag и javascript_tag ) в DOM не прикреплены (как можно увидеть в Snipt-heans, извлеченном из загруженного Pre-Source)
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");
это похоже на то, как js-ответ отображается в рельсах, как показано с помощью файла app/usings/users/create.js.erb по адресу https://guides.rubyonrails.org/v6.0/wor ... .html#sers. . Это потому, что для генерации Nonce я использую ID сеанса запроса.

Код: Выделить всё

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'”
, несмотря на то, что идентичный nonce в встроенном сценарии, почему он не выполняется?

Код: Выделить всё

config.actions.content_security_policy[:script_src] = "'self' 'unsafe-inline'"
и обновление приложение/шаблоны/home/create.js.haml [/b] следующим образом

Код: Выделить всё

: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]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»