Как добавить ключевое слово «unsafe-inline» для запуска встроенного javascript?

Я изучаю javascript и пытаюсь запустить встроенный код javascript. Я использую руководство по быстрому запуску электрона , и код работает нормально, прежде чем я попытаюсь добавить встроенный javascript. Вот мой index.html :

      <!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <title>Hello World!</title>
  </head>
  <body>
    <script>
      console.log("Hello World"); // <-- this is the line causing problems
    </script>
    <h1>Hello World!</h1>
    We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.
  </body>
</html>

Когда я пытаюсь загрузить веб-страницу с добавленным console.log("Hello World") , я получаю сообщение об ошибке:

Отказано в выполнении встроенного сценария, поскольку он нарушает следующую директиву политики безопасности содержимого: «script-src 'self'». Для включения встроенного выполнения требуется либо ключевое слово unsafe-inline, либо хэш ('sha256-m/hGOmrcpR2CLf5ZFUFQux1kBtD2znXvM4R5xVpagmI='), либо одноразовый номер ('nonce-...').

Сообщение об ошибке говорит мне, что я могу добавить ключевое слово «unsafe-inline» . Как именно это сделать?

Я пробовал искать примеры, например этот пример на SO или это руководство на content-security-policy.com . Но все примеры просто говорят мне добавить «unsafe-inline» в политику безопасности контента, фактически не показывая, как это делается.

1 ответ

Можете добавитьunsafe-inlineизменив метатег на следующий. Однако я бы предложил оставить его прежним и просто загрузить JS через отдельный файл, поскольку изменение тега добавляет некоторые риски безопасности. Не зря его называют небезопасным .

      <!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'">
    <title>Hello World!</title>
  </head>
  <body>
    <script>
      console.log("Hello World"); // <-- this is the line causing problems
    </script>
    <h1>Hello World!</h1>
    We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.
  </body>
</html>
Другие вопросы по тегам