Firebase-обмен сообщениями без сервера XMPP-сервера - Предложение
Я знаю, что этот вопрос задавался слишком много раз. Но у меня есть что предложить и нужно знать, имеет ли смысл.
Я уже использую базу данных Firebase.
Все, что мне нужно, это сервер, чтобы сделать POST-вызов для обмена сообщениями Firebase. Но что делать, если приложение делает тот же POST-вызов?
Теперь я понимаю, что существует риск безопасности, совместимый с этой моделью. Приложения можно декомпилировать, а ключ сервера можно извлечь. Но поскольку я уже использую базу данных Firebase, что делать, если я сохраняю ключ в своей базе данных и запрашиваю, когда мне это нужно.
Пожалуйста, дайте мне знать, если это звучит хорошо или у него есть какие-то недостатки, кроме одного увеличенного вызова в мою базу данных.
Ответы
Ответ 1
Единственный способ защитить ваш ключ сервера FCM - это не подвергать его воздействию устройств ненадежных клиентов.
Если вы храните ключ сервера FCM в базе данных, вам необходимо сохранить его в месте, которое каким-то образом доступно пользователям вашего приложения, которые вы хотите разрешить отправлять сообщения FCM.
Если ключ сервера FCM доступен для этих пользователей, они могут взять ключ и оскорбить его. Если вы разрешаете доступ к этому значению крошечному подмножеству ваших пользователей, вы уменьшите риск для этой небольшой группы пользователей. И если это ненадежные клиенты, то вы все еще подвергаете ключ не доверенным клиентам.
Итак, вы добавляете слой косвенности, но я бы не стал считать его более безопасным.