【问题标题】:How secure are Meteor client side DB requests?Meteor 客户端数据库请求的安全性如何?
【发布时间】:2017-02-10 02:24:50
【问题描述】:

让我们想象 3 台机器:

  • 客户
  • 流星服务器
  • MongoDB 服务器

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

【问题讨论】:

    标签: mongodb meteor client


    【解决方案1】:

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

    docs所写

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

    对于写请求——客户端保存反映在 MiniMongo 中的数据,然后与 Meteor 服务器通信。根据允许/拒绝规则,数据可能被写入 MongoDB 服务器或被拒绝。 (假设,insecure 包被移除)

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

    Meteor 客户端 DB 请求的安全性如何?
    答案是“视情况而定”。根据 Meteor docs 的说法,不建议依赖允许/拒绝规则来保证安全。总是首选通过here讨论的方法来做到这一点

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2011-11-29
      • 2014-08-21
      • 2016-01-10
      • 1970-01-01
      • 2019-05-05
      相关资源
      最近更新 更多