2016-07-24 2 views
0

Может быть кто-то может помочь мне, чтобы лучше понять механизм ACL PARSE путем подтверждения/опровержения следующий сценарий:О безопасности Разбор

  • Пользователь A создает объект и предоставляет разрешения на чтение/запись для пользователей A и B.
  • Пользователь B может извлечь объект, удалить A из ACL и сохранить его.
  • В результате A - создатель объекта - больше не может изменять или даже находить объект.

Если это так, я считаю это проблемой безопасности. Есть ли способ предотвратить изменения клиентской стороны в ACL объекта, чтобы я мог полностью управлять ACL в Cloud Code?

EDIT: Как указал Мазель Тов, один из способов решения этой проблемы - запретить прямой доступ к клиенту и вместо этого использовать только облачный код (с переопределением главного ключа) для доступа к данным. Я не считаю это жизнеспособным решением, потому что этот подход дает большую часть преимуществ Parse. ACL - отличное средство контроля прав доступа, но, по крайней мере, в некоторых контекстах использования - предоставление клиентам возможности переопределения этих параметров кажется опасным.

Так что для меня остается вопрос: если ACL Парса теоретически разрешает любому пользователю доступ к записи для объекта, чтобы манипулировать правами доступа всех других пользователей, не видит ли это что-либо еще в качестве проблемы безопасности?

+0

да, вы можете сделать это целиком в облачном коде, поэтому у нас есть мастер-ключ: -) ... при его использовании он переопределит любое разрешение ... –

+0

Спасибо за этот намек! Я обновил сообщение соответственно. –

+0

Существует также функция безопасности для всех классов, вы можете просмотреть ее с панели управления с правой стороны ... вы можете установить Roles в Parse .... Вы всегда можете проверить, находится ли автор объекта в ACL в некоторый триггер afterSave ... Я не вижу никакой угрозы безопасности здесь, только возможности и отличные рамки –

ответ

0

Для других в аналогичной ситуации: я не нашел решения этой проблемы (по крайней мере для меня это проблема, а не «возможность»), поэтому я закончил использование ACL для контроля доступа только для чтения (все доступ на запись является приватным) и запускает мою собственную систему разрешений на стороне сервера с лотами функций облачного кода для всех видов доступа на запись.

Смежные вопросы