Контекст редактируется в консоли, как мне избежать этого? - PullRequest
0 голосов
/ 30 января 2020

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

Пользовательские данные в моей базе данных Firebase в реальном времени выглядят так:

IUWWrNeBHbRex3nWGCKlf2zsSEi2 <br>
authorization: "standard" <br>
email: "bfbasher@gmail.com"

Поле авторизации можно изменить через веб-консоль. Я могу заменить «стандартный» на «админ» и получить доступ к страницам администратора. Мой вопрос, как я могу предотвратить это?

1 Ответ

0 голосов
/ 30 января 2020

Если вы можете получить доступ к своей странице администратора, просто изменив свое локальное хранилище, проблема в другом месте. Когда вы защищаете свои страницы / данные, вы должны делать это на стороне сервера, потому что на стороне браузера каждый имеет доступ к коду и каждый может его изменить.

Если вы находитесь в SPA (каждый запрос В режиме XHR) вам необходимо защитить все конечные точки API, чтобы проверить, разрешено ли пользователю получать / обновлять данные. Вы можете использовать правила безопасности firebase https://firebase.google.com/docs/rules/basics#production -ready_rules . Отображение страницы администратора по-прежнему будет доступно, если пользователь изменит свое локальное хранилище, поскольку маршрутизация находится на лицевой стороне, но нет угрозы безопасности, поскольку данные не могут быть получены обычным пользователем (проверка выполняется в API на стороне сервера).

Если вы находитесь в режиме рендеринга на стороне сервера (SSR) (следующий пример js), это будет примерно так же, вы должны проверять авторизацию пользователя при каждом запросе, но пользователь будет больше не будет доступа к отображению страниц администратора, потому что весь процесс выполняется на стороне сервера, где пользователь не может играть с данными.

Весь этот процесс безопасности называется RBA C (управление доступом на основе ролей) и в интернете много таких платков, как этот https://www.toptal.com/firebase/role-based-firebase-authentication! Веселись✌️

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...