javascript - PouchDB 中模糊的用户名和密码

标签 javascript couchdb pouchdb

我正在试验 PouchDB 和客户端 Javascript。 PouchDB 站点上的示例对我来说非常有用:http://pouchdb.com/getting-started.html .我的问题是,当我连接到远程服务器时,有什么办法可以隐藏用户名和密码吗?有问题的代码:

var remoteCouch = 'http://user:pass@mname.iriscouch.com/todos';

这都是客户端 JS 并且可以公开查看。我很难找到解决方法。

最佳答案

当您在服务器之间通信时,您可以使用 SSL 来保持安全。客户端和服务器在发送有关请求的任何数据(即文件名、基本身份验证凭据等)之前建立安全连接。

就客户端的内容而言,更多的是您希望安全到什么程度的问题。由于一切都是 JavaScript,尤其是 PouchDB,您必须满足于以下两种情况之一

  1. 有一个显示菜单或隐藏菜单的精美开关

    在这个场景中,您有一个包含所有重要菜单的主屏幕。用户要么提供正确的密码,将他们带到该屏幕,要么程序显示“错误的用户名或密码错误”。但由于它全部使用 JavaScript,任何对您的系统有足够了解的人都可以说类似 MyApp.User.isLoggedIn = function() { return true; };.

  2. 加密你需要的东西

    如果客户端有敏感数据,您可以要求他们提供密码并使用该密码加密敏感数据。根据有效载荷,它可能会或可能不会太过性能密集。在这种情况下,您可能必须实现自己的 session ,这样您就不会最终将密码或敏感数据保留在内存中。然后 Eve 所要做的就是转到 JS 控制台并点击 console.log(MyApp.User.password);。即使密码经过散列和加盐(或应该),Eve 可能仍然可以访问散列函数和加盐。

祝你好运!很想听听你的想法。

关于javascript - PouchDB 中模糊的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754804/

相关文章:

android - PouchDB 不在三星 Android 手机上创建数据库(Android v. 4.1.3、4.2.2)

javascript - React App CSS 转换非常慢

javascript - 如何访问 Meteor.call() 中的变量?

mysql - 将 Couchdb 共享或复制到 Mysql

ios - 连续复制与一次性复制的成本(使用 TouchDB 和 Cloudant)

couchdb - _replicator 数据库不可扩展或我的设计需要调整

javascript - 替换两个引号之间的字符串

javascript - Mongoose 已连接但找不到数据

android - 应用程序和服务器之间 SQLite 数据库的一对一同步

javascript - JS等待回调在for循环内完成执行