Обновить

Комментарии 5

Пользователь открывает OldApp, нажимает кнопку «Перенести данные в новое приложение», и его профиль, настройки и другие данные сохраняются в Firebase. Затем он открывает NewApp, авторизуется, и приложение автоматически загружает его данные.

Не совсем понял, если юзер использует новую аппу месяц и не захотел переносить данные из старой апы прям сейчас, потом случайно зашел в старую, там ему высветится кнопка "Эй друг смигрируй данные" и он решил всё таки смигрировать, то после миграции данные из новой аппы будут перетерты старой аппой ?

шифруйте их перед записью в Firestore

А как вы потом передаете приватный ключ ? Ведь если тоже через Firebase то атакер легко отловит этот ключ в процессе передачи и расшифрует пароль который лежит рядом.

Спасибо за статью. Пару моментов не знал о Firebase. Но это всё выглядит как какой-то мега костыль, но он да, экономит средства и время чтобы не писать свой бек для хранения данных пользователей чтобы не делать этот велосипед.

и он решил всё таки смигрировать, то после миграции данные из новой аппы будут перетерты старой аппой ?

Это всего лишь пример использования. Конечно, это всё настраивается вами в коде, как вы хоте. У нас это исключающее добавление: то есть переносились данные из старого, если они не совпадали с данными, которые в новом. Данные в новом считались приоритетнее. Но на это можно сделать и настройку в новом как юзер хочет: перезаписать данные, игнорировать или оставить оба.

А как вы потом передаете приватный ключ ? Ведь если тоже через Firebase то атакер легко отловит этот ключ в процессе передачи и расшифрует пароль который лежит рядом.

Способов шифрования и передачи ключа множество: выберите самый подходящий вам. Это всего лишь рекомендация.
Данные из фб передаются по https - атакер не прям так "легко отловит". Вообще это всё важные параметры безопасности. Ключ рядом, конечно, ни кто не складывает. Ключ можно генерировать каким-то лагоритмом, если вы решаете создавать его внутри кода. Это дело прячется и вполне себе подходит для средней степени безопасности для большинства кейсов. Ключ можно передавать из-вне по https - например, с вашего бэка - это тоже вариант, который часто используют.

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

Спасибо, что прояснили.

а гугл это всё пишет локально на диск и сдампив их базу из app/Documents можно найти этот ключ условно.

Спасибо, что обратили внимание. Да, ключ мы конечно не передаём в БД и не храним на диске. Или создаём алгоритмом, который знают оба приложения, или передаём снаружи.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации