Meteor客户端数据库请求的安全性如何?

时间:2016-10-01 17:39:09

标签: mongodb meteor client

让我们想象3台机器:

  • 客户端
  • Meteor服务器
  • MongoDB服务器

如果我从客户端执行mongodb请求,它将连接到Meteor,还是直接连接到mongodb?谢谢。

1 个答案:

答案 0 :(得分:3)

在客户端Meteor中,meteor运行MiniMongo,这是mongoDB的js API实现。

正如docs

所述
  

在客户端上,没有与MongoDB数据库的直接连接,   事实上,同步API是不可能的(也可能是什么   你要)。相反,在客户端上,集合是客户端缓存   的数据库。这是通过Minimongo库实现的   内存中,所有JS,MongoDB API的实现。

对于写入请求 - 客户端保存反映在MiniMongo中的数据,然后MiniMongo与Meteor Server进行通信。根据允许/拒绝规则,数据可能会写入MongoDB服务器或被拒绝。 (假设,^no?$ 包被删除)

简而言之,客户端(MiniMOngo)和Meteor Server通过DDP进行通信,Meteor Server和MongoDB通过NodeJS MongoDB驱动程序进行通信。来自客户端的所有通信都转到服务器,并且根据定义的规则可能/可能不会写入MongoDB DB。

Meteor客户端数据库请求的安全性如何? 对此的答案是“它取决于”。根据Meteor docs,不建议依赖允许/拒绝规则来保证安全性。最好通过讨论here

的方法来实现这一点

一些资源:
Allow/Deny Rules in Meteor
Collections in Meteor
Read about MiniMongo Here