用户隐私和使用存储用户ID的数组

时间:2014-09-09 06:47:08

标签: mongodb meteor

最近我突然明白了,如果我有以下架构怎么办?

Posts: {
    ...
    flaggedByUsers: [],
    flagCount: 
}

...其中flaggedByUsers存储用户_ids和flagCount存储标记帖子的用户总数。

由于我需要为所有用户的配置文件对象发布部分Meteor.user(这是一个好主意吗?),我注意到因为用户_id因此而始终可见,并且flaggedByUsers用于确定是否为了隐藏标记它的用户的内容,作为另一个用户,我将能够看到谁通过控制台标记了帖子。

我正在考虑这是否是一个大问题(如Reddit的情况,你不能看到谁投票/投票)。有关如何隐藏_ids的任何建议?我正在考虑使用另一个具有随机生成的值的字段,如_id,并且仅对登录用户可见,然后使用该字段中的值插入flaggedByUsers ...

1 个答案:

答案 0 :(得分:0)

除非配置文件包含敏感数据,否则发布其他用户的配置文件数据不太可能成为问题。您对flaggedByUsers字段的担忧是有道理的,尽管从控制台隐藏信息的时间过长似乎是一种不成熟的措施(在您的服务上线后,有多少人真的会立即找到这些信息?)。 / p>

考虑到限制因素:

  • 用户不应看到flaggedByUsers数据。
  • 用户不应该看到他们举报过的帖子。

也许你可以像这样实现你的帖子发布:

Meteor.publish('posts', function() {
  return Posts.find(
    {flaggedByUsers: {$ne: this.userId}}, {fields: {flaggedByUsers: 0}}
  );
});