【发布时间】:2011-02-22 13:55:45
【问题描述】:
我正在开发一个开源 Chrome 扩展程序。我应该将 .pem 文件签入公共仓库吗?
【问题讨论】:
标签: javascript open-source google-chrome google-chrome-extension
我正在开发一个开源 Chrome 扩展程序。我应该将 .pem 文件签入公共仓库吗?
【问题讨论】:
标签: javascript open-source google-chrome google-chrome-extension
如果您愿意在Google Chrome Extension Gallery 中发布您的应用程序,则不需要私钥或签署您的扩展程序。您只需压缩您的扩展文件夹并将其上传到那里。
否则,如果您计划托管(有关更多详细信息,请参阅external extensions)或通过共享打包扩展来分发它,您将需要一个私钥 (.pem)。主要目的是使扩展的起源合法化。如果有人试图安装您使用其他密钥签名的应用程序,它将不会被识别为您的。
在这种情况下,我不建议签入 .pem 文件,因为如果您的帐户遭到入侵,攻击者可以上传或分发您的扩展程序的篡改版本(可能带有恶意代码)。通过这样做,您不会以任何方式关闭扩展程序的源代码。您只需要确保您可以完全控制发布的内容(并且您作为扩展发布者的声誉保持不变)。
【讨论】:
当您想使用公共 API 创建扩展以供其他扩展使用时,可能会出现问题。由于 Chrome 的消息传递 API 使用扩展程序的 id 将消息路由到目的地,而 id 是基于扩展程序的密钥的,因此其他人将无法创建兼容的衍生扩展程序。
我认为 Google 的工程师根本没有考虑到人们可能想要编写开源扩展。我已将此问题通知 Google,但目前http://code.google.com/chrome/extensions/packaging.html 似乎没有包含任何额外的指导。
【讨论】: