2015-08-24 153 views
0

我正在研究Chrome扩展程序,它几乎已完成。它使用CryptoJS,但我想知道在发布扩展包时是否可以将这些文件(例如sha1.js)包含在内(我下载了CryptoJS并将SHA脚本文件复制到扩展目录中)。我可以在我的Chrome扩展中包含CryptoJS文件吗?

当然的替代方法是将URL包含在脚本标签中,但不能正常工作。

任何帮助,将不胜感激。

+4

你说的是什么意思?合法?技术上?你遇到什么问题? –

+0

合法的是我问的。对不起,这不够清楚。 – Michael

回答

1

有利有弊。主要优点。

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

然而,这将是由你来保持更新库。

  • 如果库中存在严重错误/漏洞利用,可以静默更新CDN提供的文件(如果指向“最新”版本)以缓解该问题。如果是本地文件,则需要了解更新并自行应用。
  • 如果不向CWS发布新版本,则无法更新本地文件。外部托管的文件可以独立更新。
+0

谢谢你,我没有真正考虑考虑性能因素。从法律上讲,在扩展包中包含CryptoJS文件是否可行?在我发布扩展之前是否需要声明某处? – Michael

+0

取决于CryptoJS和您的程序的许可证。 – Xan

1

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

{ 
... 
    "background": { 
     "scripts": [ 
      "cryptojs.js", 
      "main.js"] 
} 
... 
} 
相关问题