У меня вопрос о безопасности Parse и надеюсь, что кто-то может дать мне несколько указателей и предложений.Насколько безопасен объект Parse PFUser.current()?
Я работаю над игрой, в которой пользователи могут накапливать игровой ресурс, называемый золотом.
Чтобы отслеживать, сколько золота у каждого пользователя, у меня есть класс Parse Resource. Этот класс является общедоступным для чтения (через get, а не для поиска), но не общедоступным для записи.
Класс пользователя и класс ресурсов связаны между собой двумя способами: Каждый объект класса User имеет свойство resourceId, которое представляет собой objectId
объекта Resource, принадлежащего пользователю. Поэтому игроки могут читать (через получить) свой собственный ресурс, а также его друзей; и каждый объект в классе ресурсов имеет указатель, указывающий на пользователя в классе пользователя
В игре пользователь может вращать призовое колесо, чтобы получить золотые призы. Когда пользователь вращает колесо, клиент вызывает функцию облачного кода и передает один аргумент, который является объектом PFUser.current()
.
Код облака генерирует случайное число для определения приза, а затем записывает приз в класс ресурсов. Чтобы определить, к какому объекту ресурса нужно писать, код облака делает 2 вещи: (1) он считывает resourceId
из аргумента (PFUser.current())
и (2), используя этот resourceId
, он получает соответствующий объект ресурса, а затем проверяет, пользователь-указатель указывает на тот же объект пользователя, что и сам аргумент (опять же, PFUser.current()
).
Так что мой вопрос в том, что моя настройка защищена от того, кто пытается закрутить прикосновение другого пользователя? Может ли скомпрометированное клиентское устройство изменять объект PFUser.current()
и притворяться другим пользователем? Есть ли лучшие способы достичь того, что я хочу сделать?