簡體   English   中英

如何添加“unsafe-inline”關鍵字來運行內聯 javascript?

[英]How to add 'unsafe-inline' keyword to run 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”,而沒有實際展示它是如何完成的。

您可以通過將元標記更改為以下內容來添加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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM