Firefox在安装扩展时如何生成哈希值

Firefox在安装扩展时如何生成哈希值,firefox,hash,firefox-addon,firefox-addon-sdk,sha,Firefox,Hash,Firefox Addon,Firefox Addon Sdk,Sha,我编写了一些代码,手动获取已经从一个Firefox配置文件安装的XPI,并将XPI设置为在另一个配置文件或完全不同的计算机上手动设置 因此,我在用户配置文件文件夹中的extensions.sqlite数据库中设置了所有内容。当我将xpi本身移动到扩展文件夹中时,我甚至可以动态重命名扩展 我的问题是:当我提取XPI时,有一个名为“harnese options.json”的文件。在该文件中有两个变量,docsSHA256和jsSHA256 这些到散列的变量必须以某种方式基于扩展,但我不确定具体如何

我编写了一些代码,手动获取已经从一个Firefox配置文件安装的XPI,并将XPI设置为在另一个配置文件或完全不同的计算机上手动设置

因此,我在用户配置文件文件夹中的extensions.sqlite数据库中设置了所有内容。当我将xpi本身移动到扩展文件夹中时,我甚至可以动态重命名扩展

我的问题是:当我提取XPI时,有一个名为“harnese options.json”的文件。在该文件中有两个变量,docsSHA256和jsSHA256

这些到散列的变量必须以某种方式基于扩展,但我不确定具体如何

有人能告诉我firefox是如何生成这些散列码的吗


谢谢。

Firefox根本不会生成这些哈希。它是一个附加SDK,它可以。Firefox扩展管理器根本不关心
harnese options.json
。SDK加载器反过来关心
线束选项.json
,但目前不使用
jsSHA256
docsSHA256
。其他工具,比如上传东西到addons.mozilla.org时运行的验证器,至少关心
jsSHA256

应该注意,不使用SDK的加载项(通常)根本不包含
harnese options.json
文件

每个模块
lib/
将有一个
jsSHA256
,例如
main.js

当SDK构建XPI时,
README.md
将生成
docsSHA256
for
main.js
。显然,
README.md
没有打包到XPI中。对于所有其他模块,
docsSHA256
显示为空

有问题的代码存在于

最后,您不应该弄乱XPI(除了重新打包未打包的扩展)和/或
extensions.sqlite
。特别是后者并不意味着要进行外部修改。
只需将您的XPIs文件放到配置文件的相应
扩展名/
文件夹中,加载项管理器就会在您下次启动浏览器时自动拾取这些文件。

我发现jsSHA256是使用扩展名的“main.js”文件创建的。我仍然找不到另一个SHA。它会自动添加扩展,但也会显示一个大的“警告,激活此扩展”。由于我不希望发生这种情况,我不得不手动将所有内容添加到sqlite数据库中。我确实发现docsSHA256基本上是对一个空文件进行哈希处理。问题是,当Firefox步Chromes的后尘,使所有扩展都必须托管在其插件站点上时,这些散列将不再被Firefox使用。与此同时,我将在这方面领先他们一步。没有迹象表明Mozilla会步Chrome的后尘,创建一个有围墙的插件花园。我不知道你从哪里得到这个主意。。。这将违反他们(我们)的意愿,更不用说他们会招致社区的愤怒。我不明白的是,他们为什么要求激活任何东西。任何有恶意意图的人都可以轻易绕过任何安全功能,而不是让附加组件像chromes很快就会做到的那样工作。这就是为什么我认为他们会关闭插件。当chrome比Firefox更安全时,他们将如何与chrome竞争?正如你自己说过的:如果你已经在系统上并且恶意,那么所有赌注都将被取消,chrome也是如此。Chrome由于其“功能”而或多或少不安全。Firefox警告是为了阻止(系统范围的)附加组件的驱动安装,这些附加组件不是恶意的,但无论如何都是垃圾,比如所有与其他软件一起安装的漂亮工具栏。不遵守安全规则确实会让你被列入黑名单。如果我很烦人,我很抱歉,但我真的很喜欢讨论应用程序安全问题。如果区块列表仅基于应用程序Id,那么它会有什么好处?