javascript - 我可以在 Chrome 扩展程序中包含 CryptoJS 文件吗?

标签 javascript google-chrome google-chrome-extension cryptojs

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

当然,另一种选择是在脚本标记中包含 URL,但这并不能立即生效。

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

最佳答案

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

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

但是,您可以自行决定是否更新该库。

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

关于javascript - 我可以在 Chrome 扩展程序中包含 CryptoJS 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174323/

相关文章:

google-chrome - Chrome 扩展 : What is the active tab in 2 opened windows?

javascript - 使所有对象的数组长度相同

javascript - 单击页面上其他位置时关闭灯箱

javascript - 将AsyncStorage从react-native迁移到@react-native-community/async-storage,旧保存的数据丢失

javascript - ResizeObserver 在 Windows 上无法按预期工作

javascript - 如何在 Chrome 扩展程序的 onHeadersReceived 事件中访问请求 header

javascript - 制作一个 div 滚动以显示位于下方的主要内容

javascript - HTML5 文件阅读器问题

javascript - Chrome html5 文档类型更改输入宽度,但不选择

javascript - Windows 8 中的 chrome 扩展目录在哪里?