Предоставляют ли правила безопасности пожарного депо доступ к документам по умолчанию? - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь написать правила безопасности для своего приложения на основе Firestore, и меня смущает вопрос о том, является ли доступ к документам / коллекциям в Firestore по умолчанию (это означает, что мне нужно написать правила специально для запретить доступ к любым документам в тех случаях, когда я должен ограничить доступ) или если доступ к документам не используется по умолчанию (это означает, что мне нужно написать правила для конкретно разрешения доступа в тех случаях, когда я хочу разрешить доступ)?

Из документации firestore Я прочитал это:

Каждый запрос к базе данных из библиотеки мобильного / веб-клиента Cloud Firestore перед чтением проверяется на соответствие вашим правилам безопасностиили написание каких-либо данных.Если правила запрещают доступ к какому-либо из указанных путей к документам, весь запрос завершается неудачей.

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

Любые разъяснения будут с благодарностью!?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Доступ запрещен, если явно не предоставлено каким-либо правилом.Это означает, что коллекции, которые не соответствуют ни одному явно объявленному пути или шаблону подстановочного знака, не будут доступны.

Первый оператор match является обязательным шаблоном /databases/{database}/, и синтаксически вы должны объявить как минимум 1 allow оператор в предложении match.Поэтому по умолчанию заблокированная база данных будет выглядеть следующим образом:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Поскольку пропуск if false предоставит доступ ко всему.

Когда вы начнете объявлять определенные правила для коллекций, вы неявно будетеЗапретить доступ к коллекциям и шаблонам путей, которым явно не предоставлен доступ.

Самый простой способ подтвердить это - протестировать его с помощью встроенного имитатора правил в консоли Firebase .

enter image description here

0 голосов
/ 31 декабря 2018

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

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

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

...