Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Meteor中限制/修改已发布的集合以获得最大的安全性?_Javascript_Mongodb_Security_Meteor - Fatal编程技术网

Javascript 如何在Meteor中限制/修改已发布的集合以获得最大的安全性?

Javascript 如何在Meteor中限制/修改已发布的集合以获得最大的安全性?,javascript,mongodb,security,meteor,Javascript,Mongodb,Security,Meteor,我用的是流星0.8.0 对于一个简单的聊天应用程序,我有一个消息集合 用户id 消息文本 时间戳 用户id是指Meteor.users中的用户 在客户端上,我想显示包含用户名的消息列表。 Straithforward解决方案包括发布消息和用户集合,并在客户端执行“加入”。 但是,我不想以任何方式向客户端公开任何用户ID。 我能想到的解决办法是: 修改消息发布,方法是删除用户id(易于使用“字段”)并添加用户名(我发现很难,但Meteor 0.8.0产生了错误,因为它依赖于可能已更改的内部结构

我用的是流星0.8.0

对于一个简单的聊天应用程序,我有一个消息集合

  • 用户id
  • 消息文本
  • 时间戳
用户id是指Meteor.users中的用户

在客户端上,我想显示包含用户名的消息列表。 Straithforward解决方案包括发布消息和用户集合,并在客户端执行“加入”。 但是,我不想以任何方式向客户端公开任何用户ID。

我能想到的解决办法是:

  • 修改消息发布,方法是删除用户id(易于使用“字段”)并添加用户名(我发现很难,但Meteor 0.8.0产生了错误,因为它依赖于可能已更改的内部结构
  • 从模板助手使用Meteor.methods/.call,但这很困难,因为Meteor.call的异步特性。建议的解决方案或者不在循环中工作,或者相当复杂
  • 流星有没有一个干净简单的解决方案


    在使用Meteor进行了一段时间的实验之后,我的总体感觉是,您很快就会暴露于许多内部信息,当您试图限制这些信息时,它很快就会变得非常乏味。

    ,尽管它并没有提供一种简单的方法来完全实现您想要的。这表明服务器端连接是MDG的优先事项,但可能不是在1.0之前做好准备。但是,发布
    userId
    s的安全问题是什么?除非Meteor的安全模型中发现了严重的缺陷,否则
    userId
    不足以危害安全性。我只是试图坚持只向客户端透露绝对必要的内容的原则。例如,攻击者可以使用
    userId
    s使用其他已发布的集合挖掘信息,应用程序不打算以这种方式显示这些信息。例如,在“真实世界”应用程序望远镜中,用户可以使用控制台显示用户对其进行了高投票的帖子,而这些信息不在网页上,我假设高投票是匿名的。现在,这是这可能是望远镜的设计缺陷,但我发现很难跟踪在Meteor中发布数据的含义。