Я работаю над проектом, в котором включена политика безопасности содержимого, которая позволяет выполнять только встроенные сценарии с одноразовым номером.
header("Content-Security-Policy: script-src 'nonce-".$nonce."';");
и т. Д. На странице в мои теги сценариев вставлен одноразовый номер в следующем виде:
<script nonce="<?php echo $nonce; ?>" src="/static/js/global.js"></script>
В большинстве случаев это прекрасно работает, но мой сайт также загружаетстраница, использующая запрос ajax, и некоторые страницы, которые загружаются через запросы ajax, также содержат теги сценария как таковые.
<script nonce="<?php echo $nonce; //the same nonce as before ?>"></script>
Одноразовый номер генерируется и сохраняется на основе сеанса, поэтому каждый из тегов сценария в запросе ajax должен иметь тот же одноразовый номер, что и исходная страница, но по какой-то причине я получаю эту ошибку в chromeconsole:
jquery.min.js: 2
Отказано в выполнении встроенного сценария, поскольку оно нарушает следующую директиву политики безопасности содержимого: "script-src 'nonce-YTQ4NTU4NzU1YTlkZGY5MmYzNDZlMTc0iTkh,Либо ключевое слово unsafe-inline, хэш ('sha256-88nUYsb1c + aRY8mvRZ5hGPAkvH3REgfxFMQa6iIP4GY ='), либо одноразовый номер ('nonce -...') требуется для включения встроенного выполнения.
*Как мне сделать так, чтобы теги скрипта, загруженные через запрос ajax, также выполнялись.