источник: http://blog.parse.com/learn/engineering/parse-security-i-are-you-the-key-master/

  • клиентская сторона может отправлять запросы только в Parse (с хорошо продуманным ACL) или запрос на сервер API (с токеном сеанса пользователя)
  • серверная сторона запрашивает проверку и создает/обновляет/удаляет данные в Parse

1. Ключевой уровень

Мастер-ключ должен оставаться в секрете. Доступ к другим ключам может получить кто угодно в клиенте, поэтому не рассчитывайте на них из-за проблем с безопасностью.

2. Уровень класса

  • Get: может получить любой объект, если знает его objectId
  • Найти: может запросить все объекты
  • Обновление: можно изменять любые объекты, зная их objectId
  • Создать: может создавать новые объекты
  • Удалить: может удалять любые объекты, если знает их objectId
  • Добавить поля: можно добавлять столбцы в класс, отключая при работе.

3. Уровень приложения

  • Создание клиентского класса: отключено при работе

4. Уровень объекта

  • ACL: список контроля доступа, кто/какие роли имеют возможность читать/записывать объект
  • Роль: набор объектов и их подролей, использующих один и тот же контроль доступа.

5. Облачный код

  • до сохранения/после сохранения: например. проверять пользовательские данные перед сохранением объектов, настраивать роли для объектов после их создания
  • useMasterKey: обход ограничений и изменение объектов
  • отправить push-уведомление: push-уведомления на стороне клиента можно легко манипулировать и нанести ущерб другим пользователям

Вывод

  1. Полностью общедоступные данные: уровень класса
  2. Полностью приватные данные: ACL
  3. Частично частные/общедоступные данные: ACL, роль, облачный код