我想知道在后台页面的变量中存储一些信息是否会引起安全问题?
网站或其他扩展程序能否访问这些变量?
我目前有一个带有登录系统的扩展(我将密码的散列存储在 localStorage 中,以便在用户尝试连接到系统时比较散列)。 我正在考虑使用一个模块来扩展它,该模块可以将密码保存在内存中,直到注销或超时。我不想使用 localStorage 以明文方式存储密码,所以我想将其存储在后台页面中,但这可能更糟......
如果这不安全,你能告诉我如何实现这样的模块吗?
谢谢。
最佳答案
除非您自己实现此功能,否则其他扩展程序和网站无法访问您的后台页面的存储。
在您的扩展后台页面保存数据与 Chrome 的密码管理器一样安全。
Chrome 在 SQLite 数据库中未加密的情况下将其凭证存储在 profile directory/Default/Login Data
数据来自 chrome.storage
、localStorage、HTML5 filesystem、IndexedDB等保存在Chrome的配置文件目录中。任何有权访问您的个人资料目录的人都可以读取数据。任何人打开后台页面的 devtools 都可以查看存储的值。
如果profile目录是安全的,就不用担心方法的安全问题。
否则,您必须在便利性和安全性之间做出权衡。不断询问用户密码是否可以接受?然后尝试保存 session 标识符,并在 session 过期时询问凭据。或者使用 oAuth。
阅读更多
- Tutorial: oAuth在 Chrome 扩展文档中。
- Password storing in Google Chrome content scripts在 Security.SE。
- How can I protect my saved passwords in Chrome?在 Security.SE
关于google-chrome-extension - Chrome 扩展 : storing variables in background page is secure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287553/