簡體   English   中英

Chrome擴展程序內容 - 安全策略

[英]Chrome Extensions Content-Security-Policy

我在擴展中需要動態加載代碼。 我寫這個加載它 -

    var se = document.createElement('script');
se.setAttribute('type', 'text/javascript');
se.appendChild(document.createTextNode(code));
document.getElementsByTagName('head').item(0).appendChild(se);

這是我在manifest.js中的安全策略 -

 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

這會拋出一個javascript錯誤 -

 "Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe eval'"

我的問題是 - 為什么不放松? 我明確地在清單中添加了一行以允許不安全的逃避。

我不認為你使用eval會導致錯誤。 通過將<script>塊注入文檔的head ,您似乎違反了執行內聯JavaScript的策略。

根據內容安全政策的文檔:

內聯JavaScript將不會被執行。 此限制禁止內聯塊和內聯事件處理程序(例如<button onclick ='...'>)。

另請注意:

內聯腳本

沒有放松對執行內聯JavaScript的限制的機制。 特別是,設置包含“unsafe-inline”的腳本策略將不起作用。

您不必將代碼置於內聯中,而是必須采用一種方法,利用外部js文件來完成您嘗試的任何操作。

只需將此添加到您的manifest.json,為我工作。

 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

暫無
暫無

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

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