2

我使用 java 脚本制作了火狐插件。我想为这个插件提供密码保护。我可以在哪里永久存储用户密码?我怎样才能做到这一点?

4

2 回答 2

0

如果需要密码来向服务器验证用户身份,那么您应该使用nsILoginManager来存储它。如果用户定义了主密码,密码将加密存储在磁盘上。如果您想保护扩展程序的用户界面不受用户影响,那么您将密码存储在哪里都没有关系 - 这种保护仅适用于没有经验的用户。例如,您可以使用Preferences来存储它。

于 2012-06-25T15:34:37.810 回答
0

最好的解决方案是存储在外部存储上。就像网站一样。您发送身份验证数据,服务器检查用户并返回真或假。这有一些问题。如果您想限制非注册用户的部分附加组件,那是不可能的。整个代码可供用户使用,他可以修改它。

如果您创建网站特定的附加/搜索数据(很可能在网站的 cookie 和首选项中),该数据对于单个用户来说是秘密的、不可预测的、唯一的和统一的。您可以对其进行哈希处理并将其用作密码。连同该特定网站的用户名。这样您就可以避免注册。

通过 HTTP 进行服务器通信并不太安全,但是,大多数网站仍然使用它。

如果您没有可用的外部服务器,则可以使用 SQLite 之类的本地存储,或者我只有一个密码,您可以使用about:config 下也提供的首选项。但这些远非永久性。它一直存在,直到用户重新安装操作系统,不幸的是这很常见。

如果您希望封闭源代码隐藏存储模式,哈希生成或类似 XP-COM 组件可能会帮助您,但我不推荐,因为它真的很难维护(所有平台上的所有版本)。

于 2012-06-25T10:20:23.560 回答