Firefox addon Firefox附加客户端服务器安全性

Firefox addon Firefox附加客户端服务器安全性,firefox-addon,Firefox Addon,我正在开发Firefox插件。在插件中的某一点上,它需要联系我的服务器,给它一个URL,然后服务器将处理该URL(这不是一个快速或简单的过程),并发回一个指向结果文件的链接(在Amazon S3上)。然而,由于Firefox插件本质上大多是开源的,我如何保护对服务器的一次调用不被恶意用户发现,然后被滥用?(我只希望我的附加组件的用户能够调用服务器…) 我曾考虑过使用一些键之类的东西,但由于Firefox插件都是开源的,所以无法真正工作。我还想到编写二进制组件,但我几乎没有C++的经验(但也许对于

我正在开发Firefox插件。在插件中的某一点上,它需要联系我的服务器,给它一个URL,然后服务器将处理该URL(这不是一个快速或简单的过程),并发回一个指向结果文件的链接(在Amazon S3上)。然而,由于Firefox插件本质上大多是开源的,我如何保护对服务器的一次调用不被恶意用户发现,然后被滥用?(我只希望我的附加组件的用户能够调用服务器…)


我曾考虑过使用一些键之类的东西,但由于Firefox插件都是开源的,所以无法真正工作。我还想到编写二进制组件,但我几乎没有C++的经验(但也许对于像这样简单的东西我可以学习)——但是我如何保护对二进制组件的调用呢?还有,我怎样才能避免网络嗅探器之类的攻击?有没有可能在二进制组件中包含某种加密,这样网络嗅探器就无法检测到发送到服务器的内容?(我发现了这个问题:但这有点超出我的理解力。)

当你分发分机时,你基本上是在给人们车钥匙,所以很难阻止他们开车兜风。最安全的解决方案是您建议的:使用二进制组件并使用用户名/密码或PKI证书验证连接。如果使用HTTPS,则连接将被加密。这并不是完全安全的(二进制组件可以由一个有决心的黑客进行反向工程),但它肯定会阻止偶然的攻击。但是,请注意,实现、构建和维护二进制组件要比JavaScript等效组件困难得多


另一种方法是,在用户安装扩展时,让他们进行一次性注册。这甚至可能发生在后台,用户最终将获得一些凭据(例如PKI密钥对),用于随后与服务器的通信。如果您担心人们过度使用服务器,那么通过扩展这样做可能也不太好。通过这种方式,您可以跟踪每个用户的使用情况(通过扩展或不通过扩展),并根据需要对其进行限制。

最后,我认为您没有什么可以做的。您可以在外接程序中有一个二进制库,并通过调用它(它比二进制XPCOM组件更易于实现和维护)。但是没有什么能阻止人们以任何他们喜欢的方式使用您的扩展并更改其JavaScript逻辑。您可以使用以下逻辑使其更难:

  • 客户端到服务器:“扩展版本1.2.3要发出请求。”
  • 服务器对客户端:“带上你的chrome://... 文件,字节M到N,它们的SHA1校验和是多少?”
  • 客户端到服务器:“SHA1校验和为…,请立即处理URL…”

但这也几乎是无故障的,它只会使滥用您的服务变得更加困难。自动注册也是如此-如果您的扩展可以注册,那么攻击者也可以创建一个帐户。

回顾所包含的问题,用户名/密码身份验证可能是一个选项-但是。。。a) 我怎样才能保护它免受垃圾邮件的攻击?b) 如何提交用户名/密码并包含身份验证?(我可能会想出来……https并不难)你链接到的问题也没有真正的答案。