[英]Parse.com - secure sending data with javascript SDK
我現在正在使用Angular JS和Parse.com雲作為數據庫來構建簡單的游戲。
我的目標是在和中,將用戶得分存儲在Parse雲中。
但是,當任何人都可以訪問我的Parse密鑰時,因為它們在我的js文件中可見,並且僅使用一些偽造的數據重新創建Parse Object,然后將其存儲在我的數據庫中,我該如何安全地執行此操作?
在特定情況下,ACL並不是重點-現在,我只是在保存之前打開acl,以防止用戶在保存之前更改分數。
在我的游戲中,我沒有任何Parse用戶-我想讓所有人在不登錄的情況下玩我的游戲。
您如何看待像本文中的第一個答案一樣使“ 假 ”用戶成為主意的想法(因為JS parse SDK無法創建匿名匿名用戶),然后跟蹤會話和用戶?
對我來說,這甚至有幫助嗎?
也許我應該在Cloude代碼中進行比較比較Cookie或本地存儲數據的檢查,然后再保存在Parse中(這會使游戲作弊更加困難,但仍然可能)?
下面,我介紹我的全部服務,向您展示所有內容:
angular.module('Parsedb', [])
.provider('Parsedbmanager', function() {
this.$get = function($q, $http) {
// new Parse constructor
var ParseHighScore = Parse.Object.extend('ParseHighScore');
// create new obj
var parseHighScore = new ParseHighScore();
this.parseInit = function() {
Parse.initialize('myKey', 'myKey');
};
this.setParsedb = function(newScore) {
// set val
parseHighScore.set('HighScore', newScore);
// save score to cloud
parseHighScore.save(null, {
success: function (parseHighScore) {
// protect from change saved obj
var acl = new Parse.ACL();
acl.setPublicReadAccess(true);
acl.setPublicWriteAccess(false);
parseHighScore.setACL(acl);
return parseHighScore.save();
},
error: function (parseHighScore, error) {
console.log('Failed to create new object, with error code: ' + error.message);
}
});
};
this.getParsedb = function() {
// need q to get this asynch
var deferred = $q.defer();
var query = new Parse.Query(ParseHighScore);
query.limit(5);
query.descending("HighScore");
query.find({
success: function(results) {
console.log("Successfully retrieved " + results.length + " scores.");
// resolve, if you have results
deferred.resolve(results);
},
error: function(error) {
deferred.reject(error.message);
}
});
return deferred.promise;
};
return this;
};
});
如果您讓用戶寫入db,那么總會出現用戶可以更改數據的情況..我認為您所能做的就是從用戶那里提取數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.