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