如何修复 chrome-extension 内联 JavaScript 调用错误?

2024-03-16

我正在制作一个 chrome 扩展,但是当我尝试启动 onclick() 事件时,我似乎收到以下错误。

Refused to load the script 'https://apis.google.com/js/client.js?onload=handleClientLoad' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:"

and

Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.

这是我的manifest.json:

{
  "manifest_version": 2,

  "name": "SECURE",
  "description": "this extension offers secure communication for GMAIL     users",
  "version": "1.0",

 "browser_action": {
 "default_icon": "resources/icon16.png",
 "default_popup": "popup.html",
 "default_title": "Click here!"


 },

 "background":{
   "scripts":["background.js"]
},

 "content_scripts": [
  {
   "matches": ["http://*/*", "https://*/*"],
   "js":["myscript.js"],
   "run_at": "document_end"
  }
  ],
"permissions": ["identity", "https://accounts.google.com/*",  "https://www.googleapis.com/*"],

"oauth2": {
   "client_id": "975410329966.apps.googleusercontent.com",
 "scopes": [
   "<all urls>",
   "https://www.googleapis.com/auth/drive",
   "https://mail.google.com/",
   "https://www.googleapis.com/auth/gmail.login",
   "https://www.googleapis.com/auth/gmail.compose",
   "https://www.googleapis.com/auth/gmail.readonly",
   "https://www.googleapis.com/auth/gmail.send"
  ],

 "content_security_policy":"script-src 'self'  'unsafe-inline' 'unsafe eval'  https://apis.google.com/js/client.js?; object-src 'self'"


}
}

任何有助于修复此错误的帮助将不胜感激。


默认情况下内容安全政策 https://developer.chrome.com/extensions/contentSecurityPolicy,内联脚本不会被加载,只能加载本地脚本。您可以通过以下方式放宽默认策略:

  1. 内联脚本。看一眼官方指南 https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-inline-script,可以通过在策略中指定源代码的 Base64 编码哈希来将内联脚本列入白名单。看元素的哈希用法 https://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src-hash-usage举个例子。

    但我相信更好的方法是将这个逻辑提取到一个单独的脚本中,而不是使用内联脚本。

  2. 远程脚本。您可以将脚本资源列入白名单https://apis.google.com/js/client.js?onload=handleClientLoad通过以下部分manifest.json

    "content_security_policy":"script-src 'self' https://apis.google.com; object-src 'self'"
    

    另外,我相信更好的方法可能是下载远程client.js并将其作为本地脚本包含在内。

请注意,根据描述内联脚本 https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-inline-script, unsafe-inline不再有效。

在 Chrome 45 之前,还没有任何机制可以放松对执行内联 JavaScript 的限制。特别是,获取包含“unsafe-inline”的脚本策略将无效.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 chrome-extension 内联 JavaScript 调用错误? 的相关文章

随机推荐

  • 在调用 Main() 之前 Windows 会做什么?

    Windows 必须做一些事情来解析 PE 标头 将可执行文件加载到内存中 并将命令行参数传递给main Using OllyDbg I have set the debugger to break on main so I could v
  • Twitter API请求限制问题

    我编写了一个小型 java 程序来从 Twitter 下载所有朋友和关注者的个人资料图片 但我收到错误 因为每个 IP 地址每小时只允许 150 个请求 确切的错误是 twitter4j TwitterException 400 The r
  • SELECT 语句中的子查询 (MySQL)

    我正在创建一个 SQL 语句 它将返回一个产品列表以及我在每个商店中可以找到的每种产品的数量 我的表的结构 带有一些示例数据 如下 productID size color stock storeID 1 S RED01 1 BCN 1 S
  • 如何根据单元格值有条件地设置 ReactJs 材料表单元格的样式?

    我在材料表中有一个列 其中包含成功 失败等值 根据这些值 我需要在单元格上应用颜色 如何使用材质表来实现 这个答案是专门针对反应材料表 https material table com 在列部分中 我们需要具有如下所述的内容 因此当在表中呈
  • 调用中参数“coder”缺少参数

    我将自定义 UIButton 编码为 class AccountOpeningButton UIButton required init coder aDecoder NSCoder super init coder aDecoder 我能
  • 无法在当前范围或上下文中解决。确保所有引用的变量都在范围内

    我收到此错误 无法在当前范围或上下文中解析 TblProduct 请确保所有引用的变量都在范围内 加载所需的架构 并且正确引用命名空间 在下面的代码中 我不确定为什么它不能正常工作 我希望有人能够提供帮助 谢谢 private void A
  • 短数组的最佳排序函数

    我正在研究一种处理图片的算法 基本上我将实现一个扩散 每个像素将获得周围 8 个像素的中值 它自己的值 我要做的就是使用该值创建一个包含 9 个整数的数组 对数组进行排序并获取 array 4 处的中值 我仍然不知道该使用什么来解决这个问题
  • 根据需要验证正文中的不可空属性 - AspNetCore 3.1

    我正在尝试验证是否在请求中完全忽略了属性 字段 即 ModelState 无效并且 BadRequest 被发送回客户端 但是我正在努力处理请求主体中的不可空类型 适用于可空类型 Required public string Nullabl
  • 使用 SPARK 证明选择排序算法

    我试图证明我在 Ada 中的选择排序实现是正确的 我尝试了一些循环不变量 但使用 gnatprove 只能证明内部循环的不变量 package body Selection with SPARK Mode is procedure Sort
  • 在 Swift 中设置活动标签栏项目的背景颜色

    如果可能的话 我希望在不使用图像的情况下完成此任务 有没有一种方法可以以编程方式创建图像中显示的效果 而不必将每个选项卡渲染为图像 我在 SO 上审阅的每个问题都将选项卡保存为 JPG 这比我认为应该做的工作要多 Any ideas 我采用
  • 使用gdb将地址转换为行

    我有一个由剥离的应用程序生成的堆栈跟踪 如下所示 Check failure stack trace 0x7f0e442d392d unknown 0x7f0e442d7b1f unknown 0x7f0e442d7067 unknown
  • SwiftUI 中的事件触发的动画

    SwiftUI 动画通常由状态驱动 这很好 但有时您确实想触发临时 通常是可逆的 动画来响应某些事件 例如 我想在点击按钮时暂时增加按钮的大小 释放按钮时大小的增加和减小都应作为单个动画发生 但我无法弄清楚这一点 我认为它可以与转换结合在一
  • 将新文件添加到 subversion 而不更新整个文件夹

    我想要做的是能够将一个文件添加到本地计算机中 Subversion 源代码控制下的文件夹中 然后提交它 到这里没问题 在服务器上 我想使用 Subversion 获取新文件 但不必对整个文件夹进行 更新 这可能会更新一堆不相关的文件 你看
  • Java:如何从静态上下文中获取当前类的类对象?

    我有一个日志记录函数 它将调用对象作为参数 然后我对其调用 getClass getSimpleName 以便我可以轻松获取类名称以添加到我的日志条目中以方便参考 问题是 当我从静态方法调用日志函数时 我无法传入 this 我的日志函数看起
  • 在代码中与在脚本中生成集成测试数据[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这个问题很可能是基于意见的 但我确信 有确凿论据支持的观点将为明智的决策铺平道路 我确实喜欢使用 Autofixture 生成数据库状态 我真诚
  • 何时使用 useImperativeHandle、useLayoutEffect 和 useDebugValue

    我不明白为什么以下useImperativeHandle useLayoutEffect and useDebugValue需要钩子 您能否给出可以使用它们的示例 但请不要提供文档中的示例 请允许我在这个答案的前言中指出 所有这些钩子都很少
  • Perl 似乎已经损坏:“=:未找到”和“包:未找到”

    我有一个 perl 脚本 在我的个人机器上 运行完全相同版本的 perl 5 10 1 它运行得很好 然而 在服务器计算机上 它不仅无法运行 而且还给我带来奇怪的错误 直到最近它都运行良好 并且我确实检查了所需的软件包是否已安装 脚本的开头
  • Android材质设计按钮-Pre棒棒糖

    如何实现谷歌材料设计指南中描述的 凸起按钮 和 平面按钮 凸起的按钮为大部分平面布局增添了维度 他们强调 gt 适用于繁忙或宽敞的空间 对工具栏和对话框使用平面按钮以避免过多的分层 Source http www google com de
  • 如何在 Access 中合并两个表并删除重复项?

    我已经在网上阅读了所有可能的解决方案 每次都会得到不同的结果 我有两张桌子 客户和顾客 它们都具有相同的结构 姓氏 名字 地址 城市 州和邮政编码 客户有 108 000 个条目 而赞助人只有 42 000 个条目 由于我没有 150 00
  • 如何修复 chrome-extension 内联 JavaScript 调用错误?

    我正在制作一个 chrome 扩展 但是当我尝试启动 onclick 事件时 我似乎收到以下错误 Refused to load the script https apis google com js client js onload ha