источник: 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-уведомления на стороне клиента можно легко манипулировать и нанести ущерб другим пользователям
Вывод
- Полностью общедоступные данные: уровень класса
- Полностью приватные данные: ACL
- Частично частные/общедоступные данные: ACL, роль, облачный код