2017-01-16 63 views
0

我有一個關於解析安全性的問題,希望有人能給我一些指點和建議。解析PFUser.current()對象有多安全?

我正在開發一款遊戲,用戶可以在其中累積一款名爲黃金的遊戲資源。

爲了跟蹤每個用戶有多少黃金,我有一個名爲Resource的Parse類。這個類是公共可讀的(通過get,not find),但不能公開寫入。

User類和Resource類在兩種方式鏈接: User類中的每個對象都有一個名爲resourceId的屬性,它是屬於該用戶的Resource對象的objectId。因此,玩家可以閱讀(獲取)自己的資源以及他的朋友的資源;和 Resource類中的每個對象都有一個指向用戶類的用戶指針

在遊戲中,用戶可以旋轉獎金輪以獲得金獎。當用戶旋轉車輪時,客戶端調用雲代碼函數並傳遞一個參數,即PFUser.current()對象。

雲代碼會生成一個隨機數來確定獎品,然後將獎品寫入Resource類。要確定要寫入哪個資源對象,雲代碼會執行兩項操作:(1)它從參數(PFUser.current())和 (2)中使用resourceId讀取resourceId,它獲取相關的資源對象,然後檢查是否查看是否用戶指針指向與參數本身相同的用戶對象(同樣,PFUser.current())。

所以我的問題是,我的設置是否安全,有人試圖旋轉另一個用戶的獎輪?受影響的客戶端設備是否可以修改PFUser.current()對象並僞裝成另一個用戶?有更好的方法來實現我想要做的事嗎?

回答

0

使用此:

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

var senderUser = request.user; 

//your code 

}); 

這絕對不是通過PFUser.current()作爲參數更好的方式 - 它與解析SDK內部的工作,這意味着它應比參數更難僞造它。