@gallantalex

Безопасно ли на фронтенде работать с Firebase?

Есть сервис Firebase, который предоставляет доступ к работе с базой данных прямо из фронтенда (javascript). Но насколько это безопасно? Допустим, простой todo-list и у пользователя в нем есть какие-то таски. Так как запрос к базе посылается прямо от клиента, пользователь может спокойно изменить условие запроса и посмотреть не свои, а чужие таски? Как я понимаю эта система получается бессмысленна и тут явно нужен бекенд?
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 2
mitaichik
@mitaichik
В Firebase есть функционал для аутентификации и разграничения прав. Если сделать все правильно, то пользователь никогда не получит чужих данных. Там в доках все написанно.
Ответ написан
Комментировать
@RaulDuke
Так как запрос к базе посылается прямо от клиента, пользователь может спокойно изменить условие запроса и посмотреть не свои, а чужие таски? Как я понимаю эта система получается бессмысленна и тут явно нужен бекенд?


Нет, не так. У FB есть аутентификация в ходе которой каждому пользователю присваивается свой уникальный UID вида "wqdMpNOP4vUG79a1Dv3vZtLU9rk2", по этому uid`у и происходит настройка так называемых Security Rules. Для описанной Вами задачи они могли бы выглядеть так:
{
  "rules": {
    "tasks": {
       "$user_id": {
          // читать может только сам пользователь
          ".read": "$user_id === auth.uid",
         // писать могут все аутентифицированные и только создавать новые
          ".write": "auth !== null && !data.exists()"
       }
    }
  }
}


Надеюсь ответил на Ваш вопрос
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы