Управление доступом URL-адреса REST хранилища Firebase для URL-адресов https: //

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

НАСТРОЙКА
Я создаю приложение для чата, используя Ionic 1 и Firebase. Это означает, что я могу взаимодействовать с Firebase через REST API. Это частный чат, поэтому все передаваемые данные должны храниться в безопасности.
Я разрешаю пользователям загружать изображения и решил воспользоваться новой функцией хранения Firebase. Фигурные файлы туда лучше подходят.
Я могу успешно загружать изображения и извлекать их с помощью API хранилища ... УРА (спасибо Firebase)

ПРОБЛЕМА
Поскольку я работаю в мире REST, я обращаюсь к изображениям через URL-адрес (используя getDownloadURL в ссылке на файл). Созданный URL-адрес является общедоступным (но его невозможно угадать). Публичный характер этого URL-адреса - мое текущее падение :(
Я знаю, что URL-адрес разработан так, чтобы его нельзя было угадать, И если все остальное не удается, я могу зайти в консоль, чтобы отозвать URL-адрес, я надеюсь, что есть какой-то способ для защиты контента пользователей с помощью чего-то большего, чем обфускация.

СПРОСИТЕ или НАДЕЖДА

  • Есть ли способ создавать чувствительные ко времени URL-адреса (возможно, с использованием правил безопасности)
  • Есть ли способ создать условные URL-адреса, срок действия которых истекает после одной "загрузки"
  • Есть ли способ загрузить контент как base64, аналогичный моментальным снимкам db
  • Есть ли что-то, о чем я не думаю, что может решить эту проблему?

ТЕКУЩИЕ МЫСЛИ

  • Будьте осторожны и верьте, что URL-адреса будут безопасными
  • Храните изображения как строку base64 в самой БД (я действительно хочу избежать этого, поскольку обычно это не одобряется)

Заранее благодарим за ваши предложения и рекомендации


person Bayo O    schedule 08.10.2016    source источник


Ответы (1)


Разработчик Firebase Storage JS здесь.

Поскольку вы упомянули об использовании «getDownloadURL в ссылке на файл», я предполагаю, что вы используете библиотеку Firebase Storage JS.

  • Есть ли способ создавать чувствительные ко времени URL-адреса (возможно, с использованием правил безопасности)
  • Есть ли способ создать условные URL-адреса, срок действия которых истекает после одной "загрузки"

К сожалению, сейчас мы не предлагаем подобные функции.

Есть ли способ загрузить контент как base64, аналогичный моментальным снимкам db

В настоящее время вы можете загружать контент только по неузнаваемым URL-адресам для загрузки.

Есть ли что-то, о чем я не думаю, что может решить эту проблему?

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

Сказав все это: я согласен с вами, что было бы неплохо, если бы у вас было больше гибкости в том, как обрабатывается авторизация для загрузки файлов (разрешая доступ только для аутентифицированного пользователя через SDK, дополнительный / программный контроль над нераспознаваемыми URL-адресами, одно- время загрузки URL-адресов и т. д.). Мы обязательно учтем это, когда будем искать способы улучшить продукт, спасибо за отзыв.

person sphippen    schedule 10.10.2016