Meteor 客户端数据库请求的安全性如何?
Posted
技术标签:
【中文标题】Meteor 客户端数据库请求的安全性如何?【英文标题】:How secure are Meteor client side DB requests? 【发布时间】:2017-02-10 02:24:50 【问题描述】:让我们想象 3 台机器:
客户 流星服务器 MongoDB 服务器如果我从客户端执行 mongodb 请求,它将连接到 Meteor,还是直接连接到 mongodb?谢谢。
【问题讨论】:
【参考方案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 MeteorCollections in MeteorRead about MiniMongo Here
【讨论】:
以上是关于Meteor 客户端数据库请求的安全性如何?的主要内容,如果未能解决你的问题,请参考以下文章