Правила безопасности Firebase безопасны "auth! = Null" - PullRequest
0 голосов
/ 13 июля 2020

Я разрабатываю приложение, где пользователи отвечают на вопросы и зарабатывают вознаграждения. В моей базе данных есть таблицы под названием Пользователи и вопросы. Когда пользователь отвечает на вопрос правильно, код добавляет вознаграждение к дочернему элементу «монеты». Из-за этого я должен предоставить им доступ к этому ребенку. Другое дело, что я должен предоставить им доступ к ответу на вопрос, потому что в коде мне нужно сравнить ответ пользователя и ответ на вопрос. Но чего я боюсь, так это того, могут ли они получить доступ к этому ребенку без моего ведома и дать себе лишнюю монету или увидеть ответ на вопрос. Вот моя база данных и правила:

  "Users" : {
    "$userId" : {
      "coins" : 5000
    }
  }

  "Questions" : {
    "$questionId" : {
      "answer" : "answer of the question which i can't let the users see"
    }
  }

Вот правила:

  "Questions": {
    ".read": "auth != null",
    ".write": "auth != null",           
  }

  "Users": {
    ".read": "auth != null",
    ".write": "root.child('Users').child(auth.uid).child('rank').val() == 3",
    "$uid":{ 
      ".read": "auth.uid == $uid",
      ".write": "auth.uid == $uid ||
      root.child('Users').child(auth.uid).child('referrerId').val() == $uid" 
    },
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...