如何防止其他开发者破坏我们的 Parse 服务器数据

Posted

技术标签:

【中文标题】如何防止其他开发者破坏我们的 Parse 服务器数据【英文标题】:How to prevent other developers destroy our Parse server data 【发布时间】:2016-02-24 18:08:41 【问题描述】:

我在 Heroku 上部署了一个 Parse 服务器。但是当我创建一个演示应用程序时,我使用 Charles 来捕获网络,我看到它显示 Application IDClient ID。有了这些信息,其他开发人员就可以访问我的类中的数据、编写垃圾数据、使用垃圾数据创建垃圾类……我该如何防止这种情况发生?

我可以通过在 Cloud Code 中实现beforeSavebeforeDelete 来防止他们写入垃圾数据或删除我的数据。但是当他们读取数据时,以及当他们使用垃圾数据创建垃圾类时呢?

【问题讨论】:

你看过blog.parse.com/learn/secure-your-app-one-class-at-a-time吗? 但是我使用我的 Parse 服务器,它没有设置 CLP(类级别权限)的 UI。它不能阻止人们创建垃圾类 您是指团队中的其他开发人员吗? @SimonBengtsson 我是指不在我团队中的其他开发人员,他们可能是我竞争对手公司的开发人员。他们想摧毁我们,让我的服务器变慢,通过创建垃圾类和垃圾数据向我的 Parse 服务器发送垃圾邮件 【参考方案1】:

我想如果其他开发人员在您的团队中并且他们与您拥有相同的应用程序访问权限,那么您可以做的事情并不多。如果您指的是用户,那么我要保护parse-server 的第一件事就是设置class level permissions。由于还没有仪表板,因此必须手动完成。签出数据库中的 _Schema 集合。它将有一个字段_metadata,看起来像这样:

// Public read, private write
"_metadata": 
  "class_permissions": 
    "get": "*": true,
    "find": "*": true,
    "update": ,
    "create": ,
    "delete": ,
    "addField": ,
    "readUserFields": [],
    "writeUserFields": []
  

还有基于角色、用户和对象的安全选项。这些可以像以前一样在代码中设置,您可以看到更改如何影响对象。以下是一些示例值:


  "_id": "0CjkfC3MCO",
  "_acl": 
    "*": "r": true,
    "role:store": "w": true
  ,
  "_rperm": ["*"],
  "_wperm": ["role:admin"],
  "_updated_at": ISODate("2016-02-25T02:26:49.179Z"),
  "_created_at": ISODate("2015-08-07T19:47:42.008Z")

【讨论】:

谢谢。但我的意思是他们是竞争对手的开发者【参考方案2】:

为避免创建垃圾类,请在解析服务器设置/环境中将允许用户类创建设置为 false。

使用敏感对象/类配置 ACL 访问 - 您可以在那里设置读/写访问。

在解析服务器设置中禁用匿名用户,只有注册用户才能使用服务器。

关于数据,验证 beforeSave/afterSave 触发器中的所有数据。

【讨论】:

以上是关于如何防止其他开发者破坏我们的 Parse 服务器数据的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 iOS 13 暗模式破坏电子邮件

一劳永逸地防止 Parse Server 中重复的终极方法

如何防止使用带有 Thymeleaf 的 Spring Security 破坏 CSS 格式?

如何防止用户破坏对象

什么叫sql注入,如何防止sql注入

如何防止反序列化破坏单例