Может быть кто-то может помочь мне, чтобы лучше понять механизм ACL PARSE путем подтверждения/опровержения следующий сценарий:О безопасности Разбор
- Пользователь A создает объект и предоставляет разрешения на чтение/запись для пользователей A и B.
- Пользователь B может извлечь объект, удалить A из ACL и сохранить его.
- В результате A - создатель объекта - больше не может изменять или даже находить объект.
Если это так, я считаю это проблемой безопасности. Есть ли способ предотвратить изменения клиентской стороны в ACL объекта, чтобы я мог полностью управлять ACL в Cloud Code?
EDIT: Как указал Мазель Тов, один из способов решения этой проблемы - запретить прямой доступ к клиенту и вместо этого использовать только облачный код (с переопределением главного ключа) для доступа к данным. Я не считаю это жизнеспособным решением, потому что этот подход дает большую часть преимуществ Parse. ACL - отличное средство контроля прав доступа, но, по крайней мере, в некоторых контекстах использования - предоставление клиентам возможности переопределения этих параметров кажется опасным.
Так что для меня остается вопрос: если ACL Парса теоретически разрешает любому пользователю доступ к записи для объекта, чтобы манипулировать правами доступа всех других пользователей, не видит ли это что-либо еще в качестве проблемы безопасности?
да, вы можете сделать это целиком в облачном коде, поэтому у нас есть мастер-ключ: -) ... при его использовании он переопределит любое разрешение ... –
Спасибо за этот намек! Я обновил сообщение соответственно. –
Существует также функция безопасности для всех классов, вы можете просмотреть ее с панели управления с правой стороны ... вы можете установить Roles в Parse .... Вы всегда можете проверить, находится ли автор объекта в ACL в некоторый триггер afterSave ... Я не вижу никакой угрозы безопасности здесь, только возможности и отличные рамки –