【问题标题】:Obscure username and password in PouchDBPouchDB 中隐藏的用户名和密码
【发布时间】:2014-01-12 08:05:08
【问题描述】:
我正在试验 PouchDB 和客户端 Javascript。 PouchDB 网站上的示例非常适合我:http://pouchdb.com/getting-started.html。我的问题是,当我连接到远程服务器时,有什么方法可以隐藏用户名和密码?有问题的代码:
var remoteCouch = 'http://user:pass@mname.iriscouch.com/todos';
这都是客户端 JS 并且可以公开查看。我很难想办法解决它。
【问题讨论】:
标签:
javascript
couchdb
pouchdb
【解决方案1】:
当您在服务器之间进行通信时,您可以使用 SSL 来保持安全。客户端和服务器在发送有关请求的任何数据(即文件名、基本身份验证凭据等)之前建立安全连接。
就客户端上的内容而言,更多的是您希望有多安全的问题。由于一切都是 JavaScript,尤其是对于 PouchDB,您必须满足以下两件事之一
-
有一个花哨的开关可以显示菜单或隐藏菜单
在这种情况下,您有一个包含所有重要菜单的主屏幕。用户要么提供正确的密码,将他们带到那个屏幕,要么程序说“错误的用户名或密码”。但由于这一切都在 JavaScript 中,任何对您的系统有足够了解的人都可以说类似MyApp.User.isLoggedIn = function() { return true; };。
-
加密你需要的东西
如果客户端存在敏感数据,您可以要求他们提供密码并使用该密码加密敏感数据。根据有效负载,它可能会或可能不会过于密集。在这种情况下,您可能必须实现自己的会话,这样您就不会最终将密码或敏感数据保留在内存中。然后 Eve 所要做的就是去 JS 控制台并点击console.log(MyApp.User.password);。即使密码被散列和加盐(或应该是),Eve 可能仍然可以访问散列函数和加盐。
祝你好运!很想听听你的想法。