Как добавить ключевое слово «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>