【发布时间】:2015-07-01 12:23:06
【问题描述】:
我知道这是一个被问过很多次的问题。但在尝试在流星中开发安全代码时,我仍然关注最佳实践。
我知道您可以使用以下命令阻止客户端访问数据库:
meteor remove insecure
我的代码目前使用 Meteor.methods() 添加、检索记录,因此尽管客户端无法将数据插入集合中,但它可以使用 Meteor.method() 函数。我担心在数据库中保存登录详细信息,因为这并不意味着客户端可以使用 Meteor.method() 函数从数据库中添加/获取/删除数据。
能够调用 Meteor.methods() 函数的客户端似乎仍然保持相同的风险,不是吗?还是我的编码有误?
如果有帮助,以下是我的工作内容的简要说明:
- 应用程序加载
- 客户端调用从数据库中获取用户名和密码
- 客户端将登录详细信息发送到外部服务器(通过 https)以启动 socket.io 连接。
第 2 步是有风险的,因为它似乎允许客户端获取登录详细信息。一旦有了这个,它就会使用 socket.io.js 库和我的 web 服务的 api 来登录。所以meteor remove insecure 似乎没有保护它,因为 get 方法在 Meteor.methods() 中仍然可用?
能够使用这些功能对于从数据库中检索数据至关重要,有没有办法解决这个问题?在不向客户端公开私有数据的情况下与数据库进行通信的最佳做法是什么?
【问题讨论】:
-
你问的问题太多了。请将您的帖子缩小到几个本地化的精确问题。您的问题也不清楚(我仍然几乎不知道您的应用程序中发生了什么)。请edit你的帖子。
标签: mongodb security meteor socket.io privacy