Parse PFUser.current()对象的安全性如何?

时间:2017-01-16 11:30:08

标签: parse-platform parse-framework

我对Parse安全性有疑问,希望有人能给我一些指示和建议。

我正在开发一款游戏,用户可以在其中积累一种名为黄金的游戏资源。

为了跟踪每个用户拥有多少黄金,我有一个名为Resource的Parse类。这个类是公共可读的(通过get,not find)但不是公共可写的。

User类和Resource类的链接方式如下: User类中的每个对象都有一个名为resourceId的属性,该属性是属于该用户的Resource对象的objectId。因此,玩家可以阅读(通过获取)他自己的资源以及他的朋友的资源;和 Resource类中的每个对象都有一个指向User类

中用户的指针

在游戏中,用户可以旋转奖励轮获得金奖。当用户旋转滚轮时,客户端调用云代码函数并传递单个参数,即PFUser.current()对象。

云代码生成一个随机数来确定奖品,然后将奖品写入资源类。要确定要写入哪个Resource对象,云代码会做两件事: (1)它从参数resourceId中读取(PFUser.current()),并且 (2)使用resourceId,它获取相关的Resource对象,然后检查用户指针是否指向与参数本身相同的User对象(同样,PFUser.current())。

所以我的问题是,我的设置是否可以防止有人试图转动其他用户的奖励轮?受感染的客户端设备是否可以修改PFUser.current()对象并伪装成另一个用户?有没有更好的方法来实现我想做的事情?

1 个答案:

答案 0 :(得分:0)

使用此:

Parse.Cloud.define("myFunction", function (request, response) {

var senderUser = request.user;

//your code

});

这绝对比传递PFUser.current()作为参数更好 - 它在内部使用Parse SDK,这意味着伪造它比参数更难。