5.8 Конфиденциальность и безопасность
Last updated
Last updated
Пока вы не установите роли конфиденциальности, все данные, созданные вами или вашими пользователями, могут быть прочитаны кем угодно. Любой, обладающий навыками программирования, может просматривать все данные вашего приложения, даже если в вашем приложении нет страницы, в которой явно отображаются данные для пользователей. Именно здесь важны роли конфиденциальности, они гарантируют, что данные показываются только людям, которые соответствуют определенным критериям. Правила конфиденциальности применяются на сервере, что делает их безопасными.
Когда вы создаете новое приложение, все данные являются публичными. Это подходит для таких вещей, как комментарии в блоге, в котором вы делитесь с миром информацией. Тем не менее, многие приложения включают в себя пользователей, которые отправляют информацию, которой вы не хотели бы делиться со всем миром, такой как имена и адреса электронной почты или комментарии, которые предназначаются людям, которых они уже знают. Правила конфиденциальности - это инструмент Bubble, который позволяет защитить эту информацию и убедиться, что они в безопасности. Если вы явно не создали правила конфиденциальности для данной сущности, то данные не защищены.
Любому типу данных (типам, что задали вы и типу Пользователь) можно назначить правила конфиденциальности. Роль конфиденциальности состоит из двух частей:
Условие. Оно определяет, применяется ли роль к определенной ситуации или нет.
Права. Это типы сущностей, которые разрешено видеть пользователю при соблюдении условия.
У ролей конфиденциальности есть имена, которые используются для используются при редактировании.
Условие - это динамическое выражение, которое должно принимать значения да или нет. В случае несоответствия инспектор ошибок пометит выражения, как ошибочные и нуждающиеся в исправлении.
Ниже вы можете увидеть пример, который гарантирует, что только отправитель и получатель "сообщения" могут видеть его содержимое.
Первая роль позволяет отправителю и получателю сообщения видеть все поля, прикрепленные файлы при их наличии и включает сообщения, соответствующие указанной роли, в результаты поиска. Вторая роль, стандартная, скрывает все поля от других пользователей и гарантирует, что сообщения не попадут в результаты поиска. Вы может добавить некоторые ограничения для того, чтобы избежать отображения каких-то результатов, но использование условий конфиденциальности более безопасно и удобочитаемо.
Это права, которые предоставляет роль (когда применена). Когда применяются несколько правил, то пользователь получает доступ к объекту, если хотя бы одно правило предоставляет к нему доступ.
Просматривать все поля/View all fields. Если вы уберете отметку здесь, то сможете выбрать поля, которые пользователи в этой роли смогут видеть. Если отметка стоит, то все поля видимы. Убрав отметку со всех полей вы гарантируете, что пользователи, находящиеся в этой роли, не смогут видеть ни одного поля.
Просматривать прикрепленные файлы/View attached files. Если отметки нет, то пользователи не смогут видеть загруженные файлы, которые были прикреплены к сущности этого типа. Файлы прикрепляются к сущностям после загрузки, на уровне элемента загрузки файла.
Находить это в поиске/Find this in searches. Уберите отметку, если хотите, чтобы пользователи в этой роли не видели в результатах поиска объекты этого типа.
Разрешить автопривязку/Allow auto binding. Поставьте отметку, чтобы позволить пользователям в этой роли изменять сущности с помощью автопривязки. Вам нужно будет выбрать различные поля, которые могут быть изменены пользователем в текущей роли.
Использование ролей конфиденциальности может усложнить отладку, так как некоторые данные могут быть не видны в ваших рабочих процессах. В отладчике есть специальное упоминание, если сущность не видна из-за роли конфиденциальности, подробности об этом смотрите в соответствующей главе (!!!ЛНК!!!).
Правила конфиденциальности не применяются при изменении данных внутри рабочих процессов. Способ, с помощью можно контролировать кто что может делать в плане изменения данных заключается в том, чтобы установить условия на события и действия внутри рабочих процессов. Так как условия проверяются на сервере, это настолько же безопасно, насколько безопасна настройка ролей конфиденциальности для чтения и изменения данных через автопривязку.