0

我有一个关于 Parse 安全性的问题,希望有人能给我一些指示和建议。

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

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

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

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

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

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

4

1 回答 1

0

用这个:

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

var senderUser = request.user;

//your code

});

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

于 2017-01-18T22:26:14.743 回答