我可以在我的 Chrome 扩展中包含 CryptoJS 文件吗?

Can I include CryptoJS files in my Chrome extension?

我正在开发 Chrome 扩展程序,快完成了。不过,它使用 CryptoJS,我想知道在我发布它时是否可以将这些文件(例如 sha1.js)放在扩展包中(我下载了 CryptoJS 并将 SHA 脚本文件复制到扩展目录中。)

替代方案当然是在脚本标记中包含 URL,但这并不能立即奏效。

如有任何帮助,我们将不胜感激。

我已经这样做了,但只在我的开发机器上测试过,没有发布到 Chrome 网上商店。您只需将其包含在您的 manifest.json 文件中:

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

有利也有弊。主要是专业人士。

  • 本地文件加载速度更快 - 磁盘延迟低于网络延迟。
  • 本地文件将确保您的扩展在离线/连接不良时工作。
  • 如果CDN出现问题,本地文件更可靠。
  • 本地文件享有额外保护(至少在 Windows/Mac 平台上),因为 CWS 将为所有文件生成校验和,如果文件被篡改,商店安装的扩展程序将停止加载。
  • 本地文件可以免受网络 MITM 攻击。
  • 本地文件冻结在特定版本 - 您不会 运行 库更新和破坏兼容性的风险。
  • 在主要扩展代码(不是内容脚本)中使用外部代码需要 a modification of CSP 和支持 HTTPS 的 CDN(出于 MITM 攻击的原因)。
  • 在内容脚本中使用外部代码可能需要额外的权限(取决于 CDN 的 CORS 配置)

但是,是否更新库将取决于您。

  • 如果库中有一个关键 bug/exploit,CDN 服务的文件(如果它指向 "latest" 版本)可以静默更新以缓解这种情况。如果是本地文件,您需要了解更新并自行应用。
  • 如果不向 CWS 发布新版本,则无法更新本地文件。外部托管文件可以独立更新。