Должен ли я скрыть ключи API Firebase в бэкэнд? Не из-за безопасности данных, а из-за проблемы клонирования проекта - PullRequest
0 голосов
/ 30 августа 2018

Может ли кто-нибудь помочь мне с вопросами безопасности в Firebase?
Вот что я пытался выяснить:

Я понимаю, что для того, чтобы клиентская сторона взаимодействовала с моим приложением firebase, конфиг и firebase.initializeApp(config) были открыты для общественности, и каждый, кто использует клиентскую часть, может видеть это в консоли разработчика браузера.

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

Но если кто-то скопирует весь мой клиентский код (включая конфиги) и создаст много клонированных сайтов, то они могут использовать мою базу данных firebase столько, сколько они хотят, верно?

В этом случае я должен скрывать конфиги (ключи API) в бэкэнд, как облачные функции или что-то еще? Спасибо ...

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

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

Хакеру не очень-то выгодно получить свой ключ API. Это просто уникальный идентификатор вашего проекта. Если вы хотите защитить свои данные в базе данных реального времени и облачном хранилище, вы должны использовать правила безопасности вместе с Аутентификацией Firebase, чтобы защитить доступ только к тем пользователям, которые должны иметь такой доступ.

0 голосов
/ 30 августа 2018

Я задавался вопросом, что-то подобное раньше, и нашел эту удобную статью после небольшого поиска. ( Сама статья посвящена разработке мобильных приложений, но есть раздел, посвященный этому конкретному вопросу ). Соответствующий раздел называется « Блокировка API по домену и пакету »

В статье это объясняется лучше, чем я, и на случай, если ссылка когда-нибудь выйдет из строя, я скопирую текст ниже для ссылок будущих зрителей. Это было написано Хорхе Вергара на его сайте https://javebratt.com/hide-firebase-api/ последнее обновление 20 июля 2018 года.

Еще одна крутая вещь: если вы зайдете в свою учетную запись API Google, вы увидите все ваши проекты Firebase, выберите один и на вкладке Credentials выберите ключ API.

Если вы никогда не ошиблись с этим, это должно называться что-то вроде Клавиша браузера (автоматически создается службой Google), откройте ее, и вы найдете варианты ограничения ключа:

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

Там вы можете выбрать HTTP-рефереры (веб-сайты) и добавить свой домен. Это означает, что база данных Firebase будет принимать только запросы на люди, пишущие из этого домена.

Или приложения для Android и iOS, где вы можете добавить имя пакета и Отпечатки пальцев.

Например:

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

Ссылка, которую он предоставил для доступа к вашей учетной записи API Google: https://console.developers.google.com/apis/credentials

Если вы нажмете на ссылку « Клавиша браузера (автоматически созданную службой Google) », вы увидите раздел « Ограничения для приложений » внизу, где вы можно выбрать « HTTP Referrers » ... щелкнув по которому можно вводить утвержденные домены.

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